From f338552969586f0be913cb5348319cee7118e2e3 Mon Sep 17 00:00:00 2001 From: Matthew Jackson <1085847+MattJackson@users.noreply.github.com> Date: Wed, 29 Jul 2026 20:02:02 -0700 Subject: [PATCH] Pin the toolchain to Rust 1.87 The Windows UI needs winsafe, whose current release requires rustc 1.87. The alternative was pinning winsafe back to an older release, which would bake a stale API surface into a brand-new UI permanently to dodge one minor version. The pin's purpose is to sit BELOW the Mac default so clippy drift is caught locally before CI, not to stay on 1.86 specifically, so 1.87 preserves the discipline exactly. Verified before moving anything, not after: `cargo +1.87 clippy -- -D warnings` and `cargo +1.87 fmt --check` are clean across all eight repos, and the full precommit gate (fmt + clippy + tests) passes on libfreemkv, autorip, bdemu, freemkv-engine and freemkv-keysources. Zero new lints, zero formatting drift. --- .github/workflows/ci.yml | 8 ++++---- .github/workflows/release.yml | 4 ++-- Cargo.toml | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5313205..593381f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 + - uses: dtolnay/rust-toolchain@1.87.0 with: components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 + - uses: dtolnay/rust-toolchain@1.87.0 - uses: Swatinem/rust-cache@v2 - run: cargo test --tests @@ -33,7 +33,7 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 + - uses: dtolnay/rust-toolchain@1.87.0 - uses: Swatinem/rust-cache@v2 - run: cargo check @@ -41,7 +41,7 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 + - uses: dtolnay/rust-toolchain@1.87.0 - uses: Swatinem/rust-cache@v2 # Build the tests (not just `cargo check`): catches errors in test # code and forces full codegen of the Windows-only SPTI transport diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b71ec22..a86a2b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,7 +24,7 @@ jobs: # Tests run as a PARALLEL TRIPWIRE: they fail the run if they fail, but the # publish/release jobs do NOT `needs:` this job. The tag decision was already - # gated by the local precommit (same Rust 1.86, same commit). Binary consumers + # gated by the local precommit (same Rust 1.87, same commit). Binary consumers # (freemkv/autorip/bdemu) git-tag-pin libfreemkv and therefore start building # the instant this tag exists — so this test job and the crates.io publish # below must NOT sit on their critical path. @@ -33,7 +33,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - - uses: dtolnay/rust-toolchain@1.86.0 + - uses: dtolnay/rust-toolchain@1.87.0 - uses: Swatinem/rust-cache@v2 # libfreemkv is a library — Cargo.lock isn't tracked, so --locked # would always fail (no lockfile to lock against on a fresh runner). diff --git a/Cargo.toml b/Cargo.toml index 9721242..68e77cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "libfreemkv" version = "1.6.0" edition = "2024" -rust-version = "1.86" +rust-version = "1.87" license = "MIT" description = "Open source raw disc access library for optical drives" repository = "https://github.com/freemkv/libfreemkv"