Skip to content

ci: pin the Rust toolchain to 1.95.0 instead of floating stable#8

Merged
UnbreakableMJ merged 1 commit into
mainfrom
ci-pin-toolchain
Jun 13, 2026
Merged

ci: pin the Rust toolchain to 1.95.0 instead of floating stable#8
UnbreakableMJ merged 1 commit into
mainfrom
ci-pin-toolchain

Conversation

@UnbreakableMJ

Copy link
Copy Markdown
Contributor

Summary

CI used dtolnay/rust-toolchain@stable and rust-toolchain.toml pinned channel = "stable", so the runner tracked whatever stable was current — which has drifted ahead of this project's Nix-pinned dev toolchain (1.95.0, with no rustup to bump locally). The result: newer clippy lints appeared only on CI, after push (e.g. PR #7 needed a follow-up lint fix).

This pins both CI and rust-toolchain.toml to 1.95.0 so they run the same clippy/rustfmt and what passes locally passes on the runner.

Changes

  • rust-toolchain.toml: channel = "stable""1.95.0" (with a sync note).
  • .github/workflows/ci.yml: new workflow-level RUST_TOOLCHAIN: "1.95.0"; every dtolnay/rust-toolchain@stable step now passes toolchain: ${{ env.RUST_TOOLCHAIN }} (the action's toolchain input overrides the ref-inferred channel). Bumping is now a deliberate two-file change kept in sync, not implicit drift.

Tradeoff

Pinned to 1.95.0 (matching the dev box), not a newer release: pinning to anything the local Nix environment can't run would just reintroduce the same local-lags-CI gap. To move newer, bump the Nix devshell and these two pins together in one change.

🤖 Generated with Claude Code

CI ran dtolnay/rust-toolchain@stable (and rust-toolchain.toml pinned
channel = "stable"), so the runner tracked whatever stable was current —
which drifted ahead of the Nix-pinned dev toolchain (1.95.0, no rustup
to bump). Newer clippy lints then surfaced only on CI, after push.

Pin both to 1.95.0 so CI and local run the same clippy/rustfmt: set the
channel in rust-toolchain.toml and pass `toolchain: ${{ env.RUST_TOOLCHAIN }}`
(a new workflow-level env, kept in sync with the toml) to every
dtolnay/rust-toolchain step. Bumping the toolchain is now a deliberate
one-place change (both files + the dev environment) rather than implicit
drift on the runner.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@UnbreakableMJ
UnbreakableMJ merged commit fb3db5c into main Jun 13, 2026
8 checks passed
@UnbreakableMJ
UnbreakableMJ deleted the ci-pin-toolchain branch June 13, 2026 22:50
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