From 7c01cad43efc9a356324e5ae6f3c20935b899d92 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Thu, 14 May 2026 15:23:29 +0100 Subject: [PATCH] chore(msrv): pin rust-version = "1.85"; add MSRV lane to rust-ci MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #57. Cargo.toml uses `edition = "2024"` which stabilised in Rust 1.85, but no MSRV was recorded. Pin `rust-version = "1.85"` and add a CI matrix lane on that exact toolchain alongside `stable`, so MSRV breakage shows up as a check failure instead of as a downstream user surprise. The check job (clippy + fmt) stays on `stable` only — those tools are allowed to evolve faster than the MSRV gate. Co-Authored-By: Claude Opus 4.7 --- .github/workflows/rust-ci.yml | 16 +++++++++++++--- Cargo.toml | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index da9db6c..b80728d 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -42,20 +42,30 @@ jobs: run: cargo clippy --all-targets -- -D warnings test: - name: Cargo test + name: Cargo test (${{ matrix.rust }}) runs-on: ubuntu-latest needs: check if: hashFiles('Cargo.toml') != '' + strategy: + fail-fast: false + matrix: + # `1.85` matches Cargo.toml `rust-version` — the MSRV gate. + # `stable` keeps the lane honest against the latest stable. + rust: ['1.85', 'stable'] steps: - name: Checkout repository uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install Rust toolchain - uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable + uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # pinned + with: + toolchain: ${{ matrix.rust }} - name: Cache cargo registry and build uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2 + with: + key: ${{ matrix.rust }} - name: Run tests run: cargo test --all-targets @@ -63,7 +73,7 @@ jobs: - name: Write summary if: always() run: | - echo "## Rust CI Results" >> "$GITHUB_STEP_SUMMARY" + echo "## Rust CI Results (${{ matrix.rust }})" >> "$GITHUB_STEP_SUMMARY" echo "" >> "$GITHUB_STEP_SUMMARY" echo "- **cargo check**: passed" >> "$GITHUB_STEP_SUMMARY" echo "- **cargo test**: completed" >> "$GITHUB_STEP_SUMMARY" diff --git a/Cargo.toml b/Cargo.toml index cdd29c0..a90ffd3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,6 +3,7 @@ name = "verisimiser" version = "0.1.0" edition = "2024" +rust-version = "1.85" authors = ["Jonathan D.A. Jewell "] description = "Augment any database with VeriSimDB octad capabilities — drift detection, provenance, temporal versioning, and modality overlays" license-file = "LICENSE"