From b71ff0fcba4fe1be8ed0f814855cb42ecb68b5af Mon Sep 17 00:00:00 2001 From: Dale Seo <5466341+DaleSeo@users.noreply.github.com> Date: Tue, 23 Jun 2026 18:56:51 -0400 Subject: [PATCH 1/2] chore: declare MSRV (rust-version = "1.88") The workspace declared edition 2024 (which requires Rust >= 1.85) but had no rust-version, leaving the MSRV implicit. Several dependencies in the current lockfile (darling, jsonwebtoken, time) require rustc 1.88.0, so the true floor is 1.88. Declare it on [workspace.package] and inherit it in the published rmcp and rmcp-macros crates so downstream consumers get an explicit, machine-readable MSRV. --- Cargo.toml | 1 + crates/rmcp-macros/Cargo.toml | 1 + crates/rmcp/Cargo.toml | 1 + 3 files changed, 3 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index 4a112a94e..4bd19ef42 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,6 +9,7 @@ rmcp-macros = { version = "1.8.0", path = "./crates/rmcp-macros" } [workspace.package] edition = "2024" +rust-version = "1.88" version = "1.8.0" authors = ["4t145 "] license = "Apache-2.0" diff --git a/crates/rmcp-macros/Cargo.toml b/crates/rmcp-macros/Cargo.toml index 6f645bdc7..db94afc8c 100644 --- a/crates/rmcp-macros/Cargo.toml +++ b/crates/rmcp-macros/Cargo.toml @@ -5,6 +5,7 @@ name = "rmcp-macros" license = { workspace = true } version = { workspace = true } edition = { workspace = true } +rust-version = { workspace = true } repository = { workspace = true } homepage = { workspace = true } readme = { workspace = true } diff --git a/crates/rmcp/Cargo.toml b/crates/rmcp/Cargo.toml index 638679812..fc16e775a 100644 --- a/crates/rmcp/Cargo.toml +++ b/crates/rmcp/Cargo.toml @@ -3,6 +3,7 @@ name = "rmcp" license = { workspace = true } version = { workspace = true } edition = { workspace = true } +rust-version = { workspace = true } repository = { workspace = true } homepage = { workspace = true } readme = { workspace = true } From b05b34eede1b3e5f46a03f0b52b349069bb912c9 Mon Sep 17 00:00:00 2001 From: Dale Seo <5466341+DaleSeo@users.noreply.github.com> Date: Tue, 23 Jun 2026 18:56:58 -0400 Subject: [PATCH 2/2] ci: add MSRV check job Add an "MSRV Check" job that runs `cargo check` for rmcp (all features except local) and rmcp-macros on the declared MSRV toolchain (1.88). Because the in-repo rust-toolchain.toml pins a newer dev toolchain and would override the installed toolchain for cargo, the job forces RUSTUP_TOOLCHAIN=1.88 so the check actually runs on the MSRV rather than the pinned version. --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eadd2794f..a1c084cfd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,6 +112,32 @@ jobs: --only-explicit-features \ --features "$FEATURES" + msrv: + name: MSRV Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + + - name: Install Rust (MSRV) + uses: dtolnay/rust-toolchain@1.88 + + - uses: Swatinem/rust-cache@v2 + + # `rust-toolchain.toml` pins a newer dev toolchain and would otherwise + # override the toolchain installed above for in-repo `cargo` invocations. + # Forcing `RUSTUP_TOOLCHAIN` ensures the checks actually run on the MSRV. + - name: Check rmcp and rmcp-macros at MSRV + env: + RUSTUP_TOOLCHAIN: "1.88" + run: | + rustc --version + FEATURES=$(cargo metadata --no-deps --format-version 1 \ + | jq -r '[.packages[] | select(.name == "rmcp") | .features | keys[] + | select(startswith("__") | not) + | select(. != "local")] | join(",")') + cargo check -p rmcp --features "$FEATURES" + cargo check -p rmcp-macros + spelling: name: spell check with typos runs-on: ubuntu-latest