Skip to content

fix(ci): make MSRV real — raise to Rust 1.88 and actually test on it - #212

Merged
tupe12334 merged 1 commit into
mainfrom
fix/msrv
Sep 24, 2026
Merged

tupe12334 merged 1 commit into
mainfrom
fix/msrv

Conversation

@tupe12334

@tupe12334 tupe12334 commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Summary

The declared MSRV (Rust 1.75) was not real. 1.75 cannot build main:

  • Cargo.lock is lockfile v4, which Cargo 1.75 can't read.
  • toml 1.1 and serde_spanned 1.1 are edition 2024 (needs 1.85). Cargo 1.84 fails with failed to download serde_spanned v1.1.1.
  • regress 0.11.1 uses let-chains (stable in 1.88) and doesn't declare a rust-version. Rust 1.85 through 1.87 fail with error[E0658]: `let` expressions in this position are unstable.

The MSRV (1.75) job still passed because rust-toolchain.toml pins stable, which overrides the toolchain the job installs. So it was just a second stable build.

Changes:

  • rust-version = "1.88". I checked locally: 1.87 fails to build, and 1.88 builds and passes the full test suite with --locked.
  • MSRV job:
  • README MSRV badge and CHANGELOG updated.
  • Lint ratchet: clippy::trivially_copy_pass_by_ref is now deny (no existing violations).

Branch protection on main has no required checks, so renaming the job doesn't block anything.

Test plan

  • cargo +1.88 test --locked passes (112 lib, 31 bin, 17 cli, 11 integration)
  • cargo +1.87 build --locked fails (confirms 1.88 is the real floor)
  • cargo clippy --all-targets --locked -- -D warnings passes (clippy's MSRV-aware lints now use 1.88)
  • cargo fmt -- --check passes
  • CI MSRV (1.88) job is green and its log shows rustc 1.88.0 running cargo +1.88 test --locked

🤖 Generated with Claude Code

The declared MSRV (1.75) could not build the locked dependencies:
Cargo.lock is v4, toml 1.1 / serde_spanned need edition 2024 (1.85),
and regress 0.11 uses let-chains (1.88). The MSRV job still passed
because rust-toolchain.toml pins stable, which overrides the toolchain
the job installs.

- rust-version = "1.88" (1.87 fails, 1.88 builds and passes all tests)
- MSRV job: install via `dtolnay/rust-toolchain@master` + `toolchain`
  input (Dependabot kept "upgrading" the `@1.75` ref, see #204) and run
  `cargo +1.88 test --locked` so rust-toolchain.toml cannot override it
- README badge and CHANGELOG updated
- Promote clippy::trivially_copy_pass_by_ref to deny

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@tupe12334
tupe12334 marked this pull request as ready for review September 24, 2026 10:01
@tupe12334
tupe12334 merged commit 5e56527 into main Sep 24, 2026
13 checks passed
@tupe12334
tupe12334 deleted the fix/msrv branch September 24, 2026 10:02
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