ci: add MSRV verification for Rust 1.85#26
Conversation
Add rust-version = "1.85" to Cargo.toml and a dedicated MSRV check job in the CI workflow to ensure we don't accidentally raise the minimum supported Rust version. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR adds an explicit Minimum Supported Rust Version (MSRV) to the project and enforces it in CI to prevent accidental adoption of newer Rust features than intended.
Changes:
- Declare
rust-version = "1.85"inCargo.toml. - Add an
msrvCI job that runscargo check --locked --all-targetsusing Rust 1.85. - Keep the existing
verifyjob unchanged (still runs fmt/check/test on stable).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
Cargo.toml |
Declares MSRV (rust-version = "1.85") in the package manifest. |
.github/workflows/ci.yml |
Adds a dedicated MSRV job pinned to Rust 1.85 running cargo check. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
don-petry
left a comment
There was a problem hiding this comment.
Automated review — NEEDS HUMAN REVIEW
Risk: LOW
Reviewed commit: 590d83c2afa3cac616b2909e2ad981c5cd31b80f
Cascade: triage → deep (see triage: haiku 4.5 → deep: sonnet 4.6 + duck: gpt-5.4 → audit: opus 4.6 for models)
Summary
This PR makes a low-risk CI/metadata-only change: it adds rust-version = "1.85" to Cargo.toml and a dedicated MSRV check job to the CI workflow, correctly addressing issue #11 item 4. No security concerns exist, but the PR cannot be merged as-is due to a conflict with the base branch, and CI check results are absent — both are gate failures that require resolution before approval.
Findings
Major
- [major]
merge-conflict— PR has a merge conflict with the base branch (mergeable=CONFLICTING, mergeStateStatus=DIRTY). Author must rebase or merge main before this can land. - [major]
ci-status— statusCheckRollup is empty — no CI results are available. It is unclear whether the MSRV job itself passes on Rust 1.85, which is the primary goal of this PR. CI must pass before merging.
Info
- [info]
.github/workflows/ci.yml— MSRV of 1.85 is correct: Rust edition 2024 (declared in Cargo.toml) requires exactly 1.85+. The new job usesdtolnay/rust-toolchain@1.85andcargo check --locked --all-targets, which is the canonical MSRV verification approach. - [info]
.github/workflows/ci.yml— Action refs use mutable tags (@v5, @v2, @1.85) rather than pinned SHA digests, but this is consistent with the existing workflow and not introduced by this PR. Consider a follow-up to pin all actions to SHAs. - [info]
.github/workflows/ci.yml— The new msrv job inherits the top-levelpermissions: contents: readand accesses no secrets. Security footprint is minimal — only cargo check (read-only source analysis).
CI status
No CI results available (statusCheckRollup is empty). CI must pass before merging.
Reviewed by the don-petry PR-review cascade (triage: haiku 4.5 → deep: sonnet 4.6 + duck: gpt-5.4 → audit: opus 4.6). Reply with @don-petry if you need a human.
Why?
Without an explicit MSRV (minimum supported Rust version), contributors can unknowingly use newer language features that break the build for users on older toolchains. Declaring and testing the MSRV in CI catches these regressions before they're merged.
Summary
rust-version = "1.85"toCargo.tomlto declare the minimum supported Rust versionmsrvjob to the CI workflow that runscargo checkwith Rust 1.85Addresses item 4 in #11.
Test plan
msrvjob passes with Rust 1.85verifyjob remains unaffected🤖 Generated with Claude Code