Fix Rust CI: the system packages are never installed - #455
Merged
Conversation
Check, Clippy, Docs and Test Suite have failed since 2026-07-03, the last green
run was 2026-07-02. The failures are missing system libraries, not code.
pkg-config cannot find alsa.pc, so alsa-sys fails to build, and
/usr/share/vulkan/icd.d does not exist, so the lavapipe step exits.
cache-apt-pkgs-action installs with apt-fast, which cannot handle the
mirror+file:/etc/apt/apt-mirrors.txt source that the ubuntu-24.04 image uses. It
builds a literal URL out of that line, so every .deb returns 404:
E: Failed to fetch mirror+file:/etc/apt/apt-mirrors.txt/pool/main/g/...deb
404 Not Found
E: Unable to fetch some archives
Caching 0 installed packages...
Skipped all manifest write. No packages to install.
The action then reports success, so nothing fails until a build needs one of the
libraries.
Install the packages with plain apt-get instead. It reads the mirror list
correctly, and the step fails right away when a package cannot be installed. The
install costs about half a minute per job, which is small next to the cargo
build it unblocks.
Rust 1.97 promoted clippy::useless_borrows_in_formatting, so the Clippy job fails on `-D warnings` for interfaces/kalosm/src/surrealdb_integration/mod.rs. Display for String and for &String print the same text, so removing the & does not change the output.
ealmloff
enabled auto-merge (squash)
August 8, 2026 16:42
ealmloff
disabled auto-merge
August 8, 2026 17:12
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rust CI has been red since 2026-07-03. The last green run was 2026-07-02. It is not the code, the system libraries are simply not installed.
Check,ClippyandDocsdie whenalsa-sysbuilds:and
Test Suitedies earlier, inConfigure lavapipe:Both are packages
cache-apt-pkgs-actionis asked to install. It installs them withapt-fast, which cannot read themirror+file:/etc/apt/apt-mirrors.txtsource that the ubuntu-24.04 image uses. It pastes that line together with the pool path into a URL that cannot exist, so every.debreturns 404:The action then reports success. That is why this was not obvious: the step is green, zero packages are installed, and the job only breaks minutes later somewhere unrelated.
So this installs the packages with plain
apt-getin all four jobs. apt reads the mirror list correctly, and the step now fails immediately if a package cannot be installed, instead of failing quietly.APT_CACHE_VERSIONis not used anymore, so it is gone. The install takes about half a minute per job.The second commit is one line. Rust 1.97 promoted
clippy::useless_borrows_in_formatting, so the Clippy job fails on-D warningsfor aformat!("{}-links", &self.table)in the surrealdb integration.DisplayprintsStringand&Stringthe same way, so dropping the&does not change the output. The same lint hit candle and the same fix is merged there, huggingface/candle#3754. Without this commit CI here is still red, so it is in this PR rather than its own.I checked this on a run in my own fork, where the Actions cache was empty, so it is not just a stale cache being cleared.
Check,ClippyandRustfmtpass there, andTest Suitenow installs the packages, gets throughConfigure lavapipeand reaches the tests.One thing this does not fix.
Test Suite,Mac Test Suiteand the windows job run the remote model tests, which needOPENAI_API_KEY,ANTHROPIC_API_KEYandGEMINI_API_KEY. All three workflows usepull_request, and GitHub does not pass secrets to apull_requestrun from a fork, so on any PR from a fork those keys are empty and 10 tests fail with 401. That is the same11 passed; 10 failedyou can see on #452 and on my fork run. So those three checks cannot go green on a PR from outside the repo. Skipping the remote model tests when the key is empty would fix that, but it is out of scope here, so tell me if you want a separate PR for it.I first tried pinning the action to v1.6.3 (its v1.6.2 is marked broken by its author) and bumping the cache key. That changed nothing, a cold cache runs the same broken install, which is what pointed at apt-fast.