diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eadd2794..a1c084cf 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 diff --git a/Cargo.toml b/Cargo.toml index 4a112a94..4bd19ef4 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 6f645bdc..db94afc8 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 63867981..fc16e775 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 }