From 1e9e46032d5f1ac2cd6cca53ae33723e3a0b608b Mon Sep 17 00:00:00 2001 From: Ciaran Ryan-Anderson Date: Sat, 11 Jul 2026 16:14:13 -0600 Subject: [PATCH] Install smoke-test wheels with their real dependency metadata instead of a hand-pinned list --- .github/workflows/python-release.yml | 20 ++++++++++---------- .github/workflows/python-test.yml | 19 +++++++++++-------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/.github/workflows/python-release.yml b/.github/workflows/python-release.yml index da0291fb4..ec17336c3 100644 --- a/.github/workflows/python-release.yml +++ b/.github/workflows/python-release.yml @@ -231,16 +231,16 @@ jobs: - name: Install PR smoke artifacts run: | - uv pip install --system --force-reinstall ./pr-smoke-artifacts/pecos-rslib/pecos_rslib-*.whl - uv pip install --system --force-reinstall ./pr-smoke-artifacts/pecos-rslib-llvm/pecos_rslib_llvm-*.whl - uv pip install --system \ - "phir>=0.3.3" \ - "networkx>=2.1.0" \ - "guppylang>=0.21.6" \ - "tket<0.12.16" \ - "hugr>=0.13.0" \ - "selene-sim~=0.2.0" - uv pip install --system --force-reinstall --no-deps ./pr-smoke-artifacts/quantum-pecos/quantum_pecos-*.whl + # Install all three local wheels in ONE resolver invocation: the local + # wheels satisfy quantum-pecos's exact pecos-rslib/-llvm pins (which do + # not exist on PyPI for unreleased versions) and every other dependency + # resolves from the wheel's own Requires-Dist -- no hand-maintained + # duplicate pin list that can drift from the package metadata. + uv pip install --system --force-reinstall \ + ./pr-smoke-artifacts/pecos-rslib/pecos_rslib-*.whl \ + ./pr-smoke-artifacts/pecos-rslib-llvm/pecos_rslib_llvm-*.whl \ + ./pr-smoke-artifacts/quantum-pecos/quantum_pecos-*.whl + uv pip check --system - name: Import PR smoke artifacts run: | diff --git a/.github/workflows/python-test.yml b/.github/workflows/python-test.yml index 42c0df2ea..59dc369a2 100644 --- a/.github/workflows/python-test.yml +++ b/.github/workflows/python-test.yml @@ -492,14 +492,17 @@ jobs: uv pip install --system --force-reinstall "${llvm_wheels[0]}" fi if [ "${{ matrix.include-pecos }}" = "true" ]; then - uv pip install --system \ - "phir>=0.3.3" \ - "networkx>=2.1.0" \ - "guppylang>=0.21.6" \ - "tket<0.12.16" \ - "hugr>=0.13.0" \ - "selene-sim~=0.2.0" - uv pip install --system --force-reinstall --no-deps ./python-compat-smoke-artifacts/quantum-pecos/quantum_pecos-*.whl + # One resolver invocation: the freshly built quantum-pecos wheel plus + # the already-installed local native wheels (re-passed so they satisfy + # its exact pecos-rslib/-llvm pins, which do not exist on PyPI for + # unreleased versions). All other dependencies resolve from the + # wheel's own Requires-Dist -- no hand-maintained pin list that can + # drift from the package metadata. + uv pip install --system --force-reinstall \ + ./python-compat-smoke-artifacts/pecos-rslib/pecos_rslib-*.whl \ + ./python-compat-smoke-artifacts/pecos-rslib-llvm/pecos_rslib_llvm-*.whl \ + ./python-compat-smoke-artifacts/quantum-pecos/quantum_pecos-*.whl + uv pip check --system fi - name: Run Python compatibility smoke test