Skip to content

fix(ci): pin the toolchain (main is red on rustc 1.100 manifest lints) - #45

Merged
alderpath merged 1 commit into
mainfrom
fix/ci-pin-toolchain
Nov 14, 2026
Merged

alderpath merged 1 commit into
mainfrom
fix/ci-pin-toolchain

Conversation

@alderpath

Copy link
Copy Markdown
Collaborator

Main is red, and it is not the PRs

Every workflow on main and on all three fork PRs failed within two minutes with zero tests run. Cause: rustc 1.100.0 landed on the runner's stable channel and added cargo manifest lints. CARGO_BUILD_WARNINGS=deny (setup-rust-toolchain v2 default) makes them fatal:

error: warnings are denied by build.warnings configuration

Reproduced locally: exit 101 under 1.100.0, clean under 1.99.0 with identical source. The trigger is the compiler, not the code.

Fix

  • rust-toolchain.toml pins 1.100.0 (+rustfmt, clippy). CI no longer passes toolchain: stable, so the runner reads the pin. Bump procedure is in the file.
  • Removed the declarations the lint proved unused: workspace hyper, metrics, metrics-exporter-prometheus, thiserror; per-crate thiserror (zero references anywhere), rustc-hash, metrics.
  • Removed the duplicated homepage (identical to repository) from all 18 manifests.
  • drain_budget/shutdown/shutdown_race now use CARGO_BIN_EXE_ocserve instead of walking current_exe(). The walk failed under a custom CARGO_TARGET_DIR, which is how CI and the remote build box run; that was a second, independent red.

Verification

gate result
cargo +1.100.0 clippy --workspace --all-targets -- -D warnings with CARGO_BUILD_WARNINGS=deny clean
cargo test --workspace 907 passed, 0 failed
check-guards.sh pass
check-matrix.sh / check-docs.py OK
test-count ratchet raised 470 → 900 from the measured count

Traceability: K-CI-PIN.

CI was red on main, not just on the PR branches. rustc 1.100.0 rolled onto
the stable channel on the runner and added cargo manifest lints
(unused_dependencies, unused_workspace_dependencies, redundant_homepage);
CARGO_BUILD_WARNINGS=deny turns them into hard errors, so every job failed
in the first two minutes with zero tests run. Reproduced locally under
1.100.0 with CARGO_BUILD_WARNINGS=deny (exit 101), green under 1.99.0.

  * rust-toolchain.toml pins 1.100.0 with rustfmt+clippy. A floating channel
    makes main hostage to a Rust release.
  * removed the declarations the lint proved unused: workspace hyper,
    metrics, metrics-exporter-prometheus, thiserror; per-crate thiserror,
    rustc-hash (store), metrics (cli, http). thiserror had zero references
    anywhere in the tree; the metrics crates are reached through
    ocserve-metrics.
  * removed the duplicated homepage (=== repository) from every manifest.
  * drain_budget/shutdown/shutdown_race now use CARGO_BIN_EXE_ocserve
    instead of walking current_exe(); the walk failed under a custom
    CARGO_TARGET_DIR, which is how CI and remote builds run.

Requirement: K-CI-PIN (TRACEABILITY.md).
Verified: cargo +1.100.0 clippy --workspace --all-targets -- -D warnings
with CARGO_BUILD_WARNINGS=deny -> clean; 907 tests pass on the build box;
guards, matrix, docs green.
@alderpath
alderpath merged commit e58d419 into main Nov 14, 2026
15 checks passed
@alderpath
alderpath deleted the fix/ci-pin-toolchain branch November 14, 2026 02:21
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.

1 participant