chore: lock MSRV policy + deprecation-window discipline for 1.0 (#43)#117
Merged
joaquinbejar merged 1 commit intomainfrom May 6, 2026
Merged
chore: lock MSRV policy + deprecation-window discipline for 1.0 (#43)#117joaquinbejar merged 1 commit intomainfrom
joaquinbejar merged 1 commit intomainfrom
Conversation
`docs/PRD.md` §4 NFR-7 and the v1.0 roadmap entry require a stable
MSRV with a one-minor-version deprecation window before raising.
This change codifies the policy in tracked artifacts:
- `MSRV.md` (new, repo root): policy ("MSRV may rise only in minor
versions; one-minor-version deprecation window before raising"),
current MSRV table per crate (every crate at 1.75 effective
2026-05-06), rationale for not pinning clippy to MSRV, the
step-by-step procedure for raising it, and the on-boarding rule
for new crates.
- `crates/itch-source/Cargo.toml` and `crates/itch-replay/Cargo.toml`
pinned with explicit `rust-version = "1.75"`. The other 12 crates
inherit `rust-version.workspace = true` from `[workspace.package]`,
which already pins 1.75. Now every crate has an explicit MSRV
floor.
- `.github/workflows/ci.yml` `msrv` job extended: previously only
`cargo build`, now `cargo build` followed by `cargo test`. The
job pins toolchain 1.75 via `dtolnay/rust-toolchain@1.75`,
separate from the `stable` channel that drives the rest of CI.
Job renamed to `cargo build + test (MSRV 1.75)` to reflect the
new shape.
`make check-msrv` (added in #42) is the local equivalent: builds
and tests every promoted crate against the pinned 1.75 toolchain.
`rust-toolchain.toml` stays on `stable`; the MSRV job installs 1.75
separately. `clippy` is intentionally NOT pinned to MSRV — clippy
lints move with the toolchain, not the language, and pinning clippy
would block useful new lints without buying compatibility.
All gates clean:
- `cargo build --workspace --all-features` (stable)
- `cargo clippy --workspace --all-targets --all-features -- -D warnings`
Closes #43.
Signed-off-by: Joaquin Bejar <jb@taunais.com>
There was a problem hiding this comment.
Pull request overview
This PR codifies and enforces the workspace’s Minimum Supported Rust Version (MSRV) policy ahead of a 1.0 stability commitment, by documenting the policy, ensuring crates declare an MSRV floor, and strengthening CI to catch MSRV regressions.
Changes:
- Added a root
MSRV.mddescribing the MSRV policy, current MSRV, and the procedure for raising it. - Pinned
rust-version = "1.75"in crates that did not previously declare/inherit an MSRV (itch-source,itch-replay). - Updated the CI “msrv” job to run
cargo testin addition tocargo buildunder Rust 1.75.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| MSRV.md | Introduces the documented MSRV policy, current MSRV table, and upgrade procedures. |
| crates/itch-source/Cargo.toml | Adds an explicit rust-version pin. |
| crates/itch-replay/Cargo.toml | Adds an explicit rust-version pin. |
| .github/workflows/ci.yml | Extends the MSRV CI job to build and test on Rust 1.75. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+28
to
+29
| `rustc 1.75.0` for every crate in the workspace, effective 2026-05-06. | ||
|
|
Comment on lines
+112
to
+113
| - `docs/PRD.md` §4 NFR-7 (local-only). | ||
| - `docs/ROADMAP.md` v1.0 (local-only). |
| name = "itch-source" | ||
| version = "0.1.0" | ||
| edition = "2021" | ||
| rust-version = "1.75" |
| name = "itch-replay" | ||
| version = "0.1.0" | ||
| edition = "2021" | ||
| rust-version = "1.75" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #43.
Summary
Codifies the MSRV policy in tracked artifacts so a 1.0 commitment with a moving floor doesn't bite downstream consumers.
`make check-msrv` (added in #42) is the local equivalent.
`rust-toolchain.toml` stays on `stable`; the MSRV job installs 1.75 separately via `dtolnay/rust-toolchain@1.75`.
Test plan