Skip to content

ci: pin the Rust toolchain (stable 1.96.0 + a pinned nightly), drop MSRV#159

Merged
LukeMathWalker merged 1 commit into
mainfrom
pin-rust-toolchain
Jun 16, 2026
Merged

ci: pin the Rust toolchain (stable 1.96.0 + a pinned nightly), drop MSRV#159
LukeMathWalker merged 1 commit into
mainfrom
pin-rust-toolchain

Conversation

@LukeMathWalker

@LukeMathWalker LukeMathWalker commented Jun 16, 2026

Copy link
Copy Markdown
Collaborator

Pin the Rust toolchain so local and CI use the same compiler instead of floating on the latest stable/nightly (which, with clippy -D warnings, lets a new release break unrelated PRs).

  • rust-toolchain.toml pins stable to 1.96.0; .rust-nightly pins the nightly for cargo-fuzz, referenced from the Makefile and the fuzz CI jobs.
  • Replace dtolnay/rust-toolchain with actions-rust-lang/setup-rust-toolchain (reads the toolchain file) and fold Swatinem/rust-cache into its built-in cache.
  • Drop the unused rust-version (MSRV).

docs stays on floating nightly since cargo-doc-md selects nightly by alias. The scheduled jobs (fuzz, docs, bench, release) aren't exercised by PR CI.
I fixed some existing clippy warnings as well as unused imports on Windows. To make it less of an issue in the future, I've restructured that test file to group by target platform, so that we don't have to pepper #[cfg(unix)] everywhere.

@LukeMathWalker LukeMathWalker marked this pull request as draft June 16, 2026 10:56
@LukeMathWalker LukeMathWalker force-pushed the pin-rust-toolchain branch 2 times, most recently from 1140a73 to 0d03441 Compare June 16, 2026 11:21
@LukeMathWalker LukeMathWalker marked this pull request as ready for review June 16, 2026 11:33
Pins the toolchain so local and CI build with the identical compiler, instead
of floating on whatever 'stable'/'nightly' is current that day (which, with
clippy -D warnings, lets a new release break unrelated PRs).

- rust-toolchain.toml: channel 1.96.0 + clippy/rustfmt components (stable pin)
- .rust-nightly: the pinned nightly, single source of truth referenced by both
  the Makefile (fuzz-check) and the fuzz CI jobs, which select it explicitly
  with `cargo +$(cat .rust-nightly)` since the root stable pin would otherwise
  win in the fuzz workspace
- Cargo.toml: remove rust-version (MSRV) from the workspace and all members
- workflows: dtolnay/rust-toolchain -> actions-rust-lang/setup-rust-toolchain,
  which reads rust-toolchain.toml. Stable jobs install from the file; fuzz jobs
  install the pinned nightly from .rust-nightly; docs stays on floating nightly
  (cargo-doc-md selects nightly by alias internally)
- fold Swatinem/rust-cache into the action's built-in cache (cache-workspaces
  for fuzz, cache-shared-key for docs); fmt and release stay cache-less
- rustflags: "" on most jobs to keep RUSTFLAGS unset; the check job keeps the
  action default (-D warnings) so it fails the build/tests on any warning
- fix clippy::duration_suboptimal_units surfaced by 1.96.0 (from_secs ->
  from_mins across firma-stack, firma-proto, firma-sidecar)
- proxy_bridge: move the Unix-only HostBridgeHandle tests into a #[cfg(unix)]
  submodule so their imports don't trip unused-import on Windows now that the
  check job denies warnings in test builds
@LukeMathWalker LukeMathWalker merged commit 9db017c into main Jun 16, 2026
12 checks passed
@LukeMathWalker LukeMathWalker deleted the pin-rust-toolchain branch June 16, 2026 15:03
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