6262 - name : Check formatting
6363 run : cargo fmt -- --check
6464 - name : Run clippy
65- run : cargo clippy --all-targets --all-features --workspace -- -D warnings
65+ run : cargo clippy --all-targets --all-features --workspace --exclude 'pg-*' -- -D warnings
6666 - name : Build docs
67- run : cargo doc --no-deps --all-features --workspace
67+ run : cargo doc --no-deps --all-features --workspace --exclude 'pg-*'
6868 env :
6969 RUSTDOCFLAGS : " -Dwarnings"
7070
@@ -90,11 +90,11 @@ jobs:
9090 # avoid building qis-compiler
9191 run : uv sync --package=tket --exact --all-extras --python ${{ env.PYTHON_LOWEST }}
9292 - name : Type check with mypy
93- run : uv run mypy .
93+ run : uv run mypy tket scripts
9494 - name : Check formatting with ruff
95- run : uv run ruff format --check
95+ run : uv run ruff format --check tket scripts test_files
9696 - name : Lint with ruff
97- run : uv run ruff check
97+ run : uv run ruff check tket scripts test_files
9898
9999 check-pg-libs-rs :
100100 name : Check pg-libs 🦀
@@ -110,13 +110,13 @@ jobs:
110110 components : rustfmt, clippy
111111 - name : Check formatting
112112 working-directory : pg-libs
113- run : cargo fmt -- --check
113+ run : cargo fmt --all -- --check
114114 - name : Run clippy
115115 working-directory : pg-libs
116- run : cargo clippy --all-targets --workspace -- -D warnings
116+ run : cargo clippy --all-targets -p 'pg-*' -- -D warnings
117117 - name : Build docs
118118 working-directory : pg-libs
119- run : cargo doc --no-deps --workspace
119+ run : cargo doc --no-deps -p 'pg-*'
120120 env :
121121 RUSTDOCFLAGS : " -Dwarnings"
122122
@@ -136,16 +136,16 @@ jobs:
136136 run : uv python install ${{ env.PYTHON_HIGHEST }}
137137 - name : Setup dependencies
138138 working-directory : pg-libs
139- run : uv sync --python ${{ env.PYTHON_HIGHEST }}
139+ run : uv sync --only-group pg-libs -- python ${{ env.PYTHON_HIGHEST }}
140140 - name : Type check with mypy
141141 working-directory : pg-libs
142- run : uv run mypy .
142+ run : uv run --only-group pg-libs mypy .
143143 - name : Check formatting with ruff
144144 working-directory : pg-libs
145- run : uv run ruff format --check
145+ run : uv run --only-group pg-libs ruff format --check
146146 - name : Lint with ruff
147147 working-directory : pg-libs
148- run : uv run ruff check
148+ run : uv run --only-group pg-libs ruff check
149149
150150 tests-pg-libs :
151151 name : pg-libs tests
@@ -166,10 +166,10 @@ jobs:
166166 run : uv python install ${{ env.PYTHON_HIGHEST }}
167167 - name : Install pg-libs dev dependencies
168168 working-directory : pg-libs
169- run : uv sync --python ${{ env.PYTHON_HIGHEST }}
169+ run : uv sync --only-group pg-libs -- python ${{ env.PYTHON_HIGHEST }}
170170 - name : Run stable tests
171171 working-directory : pg-libs
172- run : cargo test --workspace
172+ run : uv run --only-group pg-libs cargo test -p 'pg-*'
173173
174174 tests-pg-libs-nightly :
175175 name : pg-libs tests (nightly)
@@ -179,10 +179,14 @@ jobs:
179179 steps :
180180 - uses : actions/checkout@v7
181181 - uses : mozilla-actions/sccache-action@v0.0.11
182+ - uses : extractions/setup-just@v4
183+ - name : Read nightly toolchain
184+ id : nightly-toolchain
185+ run : echo "channel=$(just --evaluate nightly_toolchain)" >> "$GITHUB_OUTPUT"
182186 - name : Install pinned nightly toolchain
183187 uses : dtolnay/rust-toolchain@master
184188 with :
185- toolchain : nightly-2026-09-22
189+ toolchain : ${{ steps. nightly-toolchain.outputs.channel }}
186190 - name : Set up uv
187191 uses : astral-sh/setup-uv@v7
188192 with :
@@ -192,10 +196,10 @@ jobs:
192196 run : uv python install ${{ env.PYTHON_HIGHEST }}
193197 - name : Install pg-libs dev dependencies
194198 working-directory : pg-libs
195- run : uv sync --python ${{ env.PYTHON_HIGHEST }}
199+ run : uv sync --only-group pg-libs -- python ${{ env.PYTHON_HIGHEST }}
196200 - name : Run simd tests
197201 working-directory : pg-libs
198- run : cargo test -p pg-bitpacked -p pg-qm-tableau -p pg-greedy-synth --features simd
202+ run : uv run --only-group pg-libs cargo +${{ steps.nightly-toolchain.outputs.channel }} test -p pg-bitpacked -p pg-qm-tableau -p pg-greedy-synth --features simd
199203
200204 benches :
201205 name : Continuous benchmarking 🏋️
@@ -267,9 +271,9 @@ jobs:
267271 # Crates using pyo3 cdylib require libpython to link test binaries;
268272 # they are tested separately in their own jobs.
269273 - name : Build with all features
270- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --no-run
274+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --no-run
271275 - name : Tests with all features
272- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --all-features
276+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --all-features
273277
274278 # Run tests on other toolchains
275279 tests-rs-other :
@@ -298,13 +302,13 @@ jobs:
298302 # Crates using pyo3 cdylib require libpython to link test binaries;
299303 # they are tested separately in their own jobs.
300304 - name : Build with no features
301- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features --no-run
305+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features --no-run
302306 - name : Tests with no features
303- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features
307+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features
304308 - name : Build with all features
305- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --no-run
309+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --no-run
306310 - name : Tests with all features
307- run : cargo nextest r --verbose --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --all-features
311+ run : cargo nextest r --verbose --workspace --exclude 'pg-*' --exclude tket-py --exclude selene-hugr-qis-compiler --all-features
308312
309313 tests-nightly-coverage :
310314 needs : [changes]
@@ -328,8 +332,8 @@ jobs:
328332 - name : Run tests with coverage instrumentation
329333 run : |
330334 cargo llvm-cov clean --workspace
331- cargo llvm-cov --no-report --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features --doctests
332- cargo llvm-cov --no-report --workspace --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --doctests
335+ cargo llvm-cov --no-report -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --no-default-features --doctests
336+ cargo llvm-cov --no-report -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --all-features --doctests
333337 - name : Generate coverage report
334338 run : cargo llvm-cov report --codecov --output-path coverage.json
335339 - name : Upload coverage to codecov.io
@@ -377,13 +381,13 @@ jobs:
377381 # Crates using pyo3 cdylib require libpython to link test binaries;
378382 # they are tested separately in their own jobs.
379383 - name : Build with no features
380- run : cargo minimal-versions --direct test --verbose --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features --no-run
384+ run : cargo minimal-versions --direct test --verbose -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --no-default-features --no-run
381385 - name : Tests with no features
382- run : cargo minimal-versions --direct test --verbose --exclude tket-py --exclude selene-hugr-qis-compiler --no-default-features
386+ run : cargo minimal-versions --direct test --verbose -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --no-default-features
383387 - name : Build with all features
384- run : cargo minimal-versions --direct test --verbose --exclude tket-py --exclude selene-hugr-qis-compiler --all-features --no-run
388+ run : cargo minimal-versions --direct test --verbose -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --all-features --no-run
385389 - name : Tests with all features
386- run : cargo minimal-versions --direct test --verbose --exclude tket-py --exclude selene-hugr-qis-compiler --all-features
390+ run : cargo minimal-versions --direct test --verbose -p tket -p tket-qsystem -p tket1-passes -p badger-optimiser -p compile-rewriter --all-features
387391
388392 tests-py :
389393 needs : changes
0 commit comments