feat: use compliant llvm + tket artifacts from hugrverse-env#1471
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1471 +/- ##
=======================================
Coverage 83.82% 83.82%
=======================================
Files 187 187
Lines 28943 28943
Branches 27880 27880
=======================================
Hits 24262 24262
Misses 3520 3520
Partials 1161 1161
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR restores manylinux 2.28 compatibility for qis-compiler wheels by switching CI/build tooling from system/third-party LLVM installs and locally-built tket-c-api artifacts to LLVM/tket bundles sourced from hugrverse-env.
Changes:
- Update
qis-compiler’scibuildwheelconfiguration to build against manylinux 2.28 images and use hugrverse-provided LLVM/tket artifacts. - Refactor GitHub Actions workflows (CI, semver, release checks, wheel builds) to install LLVM/tket from
hugrverse-envand remove the compositetket-c-apiinstaller action. - Add Nix support for fetching hugrverse artifacts (
hugrenv.nix) and wire it intodevenv.nix.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 13 comments.
Show a summary per file
| File | Description |
|---|---|
qis-compiler/pyproject.toml |
Switches manylinux images back to 2.28 and replaces LLVM/tket setup with hugrverse-env downloads across OSes. |
hugrenv.nix |
New Nix helper to fetch a platform-specific hugrverse tket bundle. |
devenv.nix |
Integrates hugrenv.nix and sets TKET_C_API_PATH for local dev shells. |
devenv.lock |
Updates devenv inputs/locks (adds git-hooks-related inputs). |
.gitignore |
Ignores /wheelhouse artifacts produced by cibuildwheel workflows. |
.github/workflows/semver-checks.yml |
Replaces tket-c-api/LLVM installation with hugrverse-env downloads for semver checks. |
.github/workflows/release-checks.yml |
Replaces tket-c-api installation with hugrverse-env tket download for release validation. |
.github/workflows/python-wheels.yml |
Updates multi-platform wheel build matrix and installs hugrverse-env artifacts instead of apt/brew + tket-c-api action. |
.github/workflows/python-qis-wheels.yml |
Re-enables ARM runner in the qis-compiler wheel build matrix. |
.github/workflows/ci.yml |
Replaces apt LLVM + tket-c-api action usage with hugrverse-env installation across jobs. |
.github/actions/tket-c-api/action.yml |
Removes the composite action previously used to build/cache tket-c-api. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
3e72b67 to
0356f40
Compare
5ec6d00 to
b5f0c4e
Compare
…aseline back to 2.28 Fix llvm-sys path Add gcc-toolset-13 install back to cibw Try using new hugrenv artifacts Emit urls during install phase for debug Bump to hugrenv 0.3.0c Bump to hugrenv 0.3.0d (now with clang - windows failures expected as it's still building Add backslashes, add tket c api path on macos mkdir the hugrenv root before extracting to it, correct tar usage on windows qis-compiler builds Update tar extraction path on windows Try using windows RUNNER_TEMP as the hugrenv install dir Try replacing slashes on windows Try using python for tar extraction on windows (built-in tar doesn't seem to like windows paths) Bump to hugrenv 0.3.0 (full release)
…d copying nonexistent file on windows
…ibtket.so and hugrverse's libtket.so may conflict). Add symengine as an explicit tket dependency for windows builds
… in cibw contexts
d1399b3 to
494c81a
Compare
…y install this commit's tket-exts and tket-eccs
…nv.lock generation in hugrverse-env instead of manually managing it here
| uses: ./.github/actions/tket-c-api | ||
|
|
||
|
|
||
| - uses: quantinuum/hugrverse-env/.github/actions/install-hugrenv@main |
There was a problem hiding this comment.
Just a nitpick, but we could have install-hugrenv at the root of the repo so the callpoints are cleaner.
There was a problem hiding this comment.
agree, will do that now
|
Test run for the Can confirm that the wheels work fine. |
… checks will suffice
- [x] Pull latest branch updates and inspect moved `fetch_hugrenv` implementation - [x] Add a default destination (`./target/hugrenv/`) so `just fetch-hugrenv` works with no args - [x] Update `scripts/fetch_hugrenv.py` to accept no argument and default to `./target/hugrenv/` - [x] Extend docs to explain when to avoid the default path (shared/versioned central install paths) - [x] Run relevant validation for changed files and summarize any environment/tooling limitations --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jake-arkinstall <65358059+jake-arkinstall@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
Question - why are the python wheels a dedicated action on workflow dispatch rather than automatically done on PR? Is it because of the prior breakages? If so we might revert that in this PR. |
|
@aborgna-q I've addressed everything, I think - python wheel tests are passing and CI (at the time of writing) is looking like it'll pass too. If it doesn't I'll get back onto it but otherwise the ball is in your court! |

Recovers manylinux 2.28 support for wheels, using TKET and LLVM sourced from hugrverse-env rather than 3rd party prebuilds.
Key things to know:
just update-hugrenv 1.2.3bumps the hugrenv.lock (by downloading it from the release)