qubit-json 0.12.2

Resource-aware infrastructure for lenient and strict JSON processing
Documentation
name: Rust CI

on:
  push:
    branches:
      - main
  pull_request:
  workflow_dispatch:

permissions:
  contents: read
  pull-requests: write
  pages: write
  id-token: write

concurrency:
  group: ${{ github.repository }}-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
  cancel-in-progress: ${{ github.event_name == 'pull_request' }}

jobs:
  rust-ci:
    permissions:
      contents: read
      pull-requests: write
      pages: write
      id-token: write
    uses: qubit-ltd/rs-infra-ci/.github/workflows/github-ci.yml@main

  miri-preserve-order:
    runs-on: ubuntu-latest
    timeout-minutes: 30
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v6
        with:
          submodules: recursive
      - name: Prepare local path dependencies
        run: ./.infra/bin/prepare-local-path-dependencies.sh
      - name: Install Miri toolchain
        run: rustup toolchain install nightly-2026-06-05 --profile minimal --component miri
      - name: Prepare Miri
        run: cargo +nightly-2026-06-05 miri setup
      - name: Test mutable traversal with preserve_order
        run: cargo +nightly-2026-06-05 miri test --locked --test tests --features serde_json/preserve_order value::traverse::json_tree_mutator_tests
      - name: Test protected-value drop fallback
        run: cargo +nightly-2026-06-05 miri test --locked --lib test_owner_drop_fallback_
      - name: Test protected-value drop fallback with preserve_order
        run: cargo +nightly-2026-06-05 miri test --locked --lib --features serde_json/preserve_order test_owner_drop_fallback_