Skip to content

ci: Don't compile hugr-llvm on required stable checks#2936

Merged
aborgna-q merged 5 commits intomainfrom
ab/this-is-too-slow
Mar 11, 2026
Merged

ci: Don't compile hugr-llvm on required stable checks#2936
aborgna-q merged 5 commits intomainfrom
ab/this-is-too-slow

Conversation

@aborgna-q
Copy link
Copy Markdown
Collaborator

@aborgna-q aborgna-q commented Mar 10, 2026

Build times for --workspace --all-features went from >2mins to over 30mins after we merged #2901.
It affected not only hugr-llvm every crate, but every dependant too;

Unit Total Features
hugr-cli v0.25.7 describe "test" (test) 1265.1s default, tracing
hugr-cli v0.25.7 validate "test" (test) 1261.7s default, tracing
hugr-cli v0.25.7 hugr "bin" 1260.8s default, tracing
hugr-cli v0.25.7 convert "test" (test) 1253.3s default, tracing
hugr-core v0.25.7 hugr_core "lib" (test) 633.8s declarative, default, serde_yaml, zstd
hugr-core v0.25.7 model "test" (test) 607.4s declarative, default, serde_yaml, zstd

We are tracking down this issue, but in the meantime this PR removes the hugr-llvm feature from the stable required checks, so we can continue doing development without waiting hours to merge stuff.

Here is a cargo test --timings example:
cargo-timing.html

I made a couple drive-byes to help with the still slow cases:

drive-by: Remove unneeded transitive aws-lc-sys dependency, that was slow to compile.
drive-by: Fix rs-semver-checks. #2901 updated it in an incorrect way
drive-by: Add a concurrency limit to the rust checks workflow, so pushing new changes to a PR stops existing runs.

@aborgna-q aborgna-q requested review from cqc-alec and ss2165 March 10, 2026 22:10
@aborgna-q aborgna-q requested a review from a team as a code owner March 10, 2026 22:10
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.82%. Comparing base (3d617fb) to head (d6f0b9f).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2936      +/-   ##
==========================================
+ Coverage   83.78%   83.82%   +0.04%     
==========================================
  Files         267      267              
  Lines       52960    52996      +36     
  Branches    46899    46935      +36     
==========================================
+ Hits        44372    44424      +52     
+ Misses       6318     6302      -16     
  Partials     2270     2270              
Flag Coverage Δ
python 88.74% <ø> (ø)
rust 83.18% <ø> (+0.04%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

uses: quantinuum/hugrverse-actions/.github/workflows/rs-semver-checks.yml@main
secrets:
GITHUB_PAT: ${{ secrets.HUGRBOT_PAT }}
# once llvm-21 is packaged on apt, we could just download it using 'apt-dependencies'
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this is preferable, but it should already be possible; we'd just need to add the llvm apt repository (see https://apt.llvm.org/). Something like this should do it:

wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo add-apt-repository 'deb http://apt.llvm.org/noble/   llvm-toolchain-noble-21  main'
sudo apt update
sudo apt install llvm-21

(Not sure if we need llvm-21-dev too?)

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll merge this as-is, and see about using apt in the testing PR (#2934)

@aborgna-q aborgna-q enabled auto-merge March 11, 2026 09:17
@aborgna-q aborgna-q added this pull request to the merge queue Mar 11, 2026
Merged via the queue into main with commit 42de6c0 Mar 11, 2026
34 of 39 checks passed
@aborgna-q aborgna-q deleted the ab/this-is-too-slow branch March 11, 2026 09:26
github-merge-queue bot pushed a commit that referenced this pull request Mar 11, 2026
Proper fix following from #2936.

Manually installs LLVM from the `apt.llvm.org` repository instead of
using `KyleMayes/install-llvm-action@v2`.

I'm not sure of the reason, but this solves the issue of half-hour long
build times.
Additionally, we seem to be using `sscache` again in the builds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants