Skip to content

fix(msrv): reconcile rust-version 1.89→1.91 + add MSRV gate (PMAT-MSRV-GATE-001) - #2303

Merged
noahgift merged 1 commit into
mainfrom
agent/rank14-msrv
Jul 28, 2026
Merged

fix(msrv): reconcile rust-version 1.89→1.91 + add MSRV gate (PMAT-MSRV-GATE-001)#2303
noahgift merged 1 commit into
mainfrom
agent/rank14-msrv

Conversation

@noahgift

@noahgift noahgift commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

Fable rank-14 — the declared MSRV was a lie

Cargo.toml claimed rust-version = "1.89" in 8 places, but nothing verified itrust-toolchain.toml pins 1.93, so 1.89 was never exercised. It doesn't build:

$ cargo +1.89 check --workspace
error: rustc 1.89.0 is not supported by pmcp@2.9.0 (requires 1.91.0)
       wasmtime-internal-*@43.0.2 requires rustc 1.91.0

cargo +1.91 check --workspace Finishes clean → 1.91 is the true floor. This bumps all 8 declarations to 1.91.

The gate (scripts/check_msrv.sh)

Reads the declared rust-version and compiles the whole workspace on exactly that toolchain, failing on drift.

rust-version bash scripts/check_msrv.sh
1.91 (this PR) workspace builds on its declared MSRV 1.91
1.89 (mutation) ✗ fails — pmcp@2.9.0 requires 1.91.0

Both directions verified locally.

Follow-up (deferred until the in-flight ci.yml PRs land + the merge queue is healthy): wire check_msrv.sh into ci.yml as a per-PR job.

🤖 Generated with Claude Code

@noahgift
noahgift enabled auto-merge July 5, 2026 21:39
@noahgift
noahgift added this pull request to the merge queue Jul 5, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Jul 5, 2026
…ate (PMAT-MSRV-GATE-001)

Fable rank-14. The declared MSRV was drifting silently: Cargo.toml claimed
`rust-version = "1.89"` in 8 places, but NOTHING verified it — rust-toolchain.toml
pins 1.93 (dev/CI) so 1.89 was never exercised. It's a lie: `cargo +1.89 check
--workspace` fails —

    error: rustc 1.89.0 is not supported by pmcp@2.9.0 (requires 1.91.0)
    ... wasmtime-internal-*@43.0.2 requires rustc 1.91.0

`cargo +1.91 check --workspace` Finishes clean, so 1.91 is the true floor. Bumps all
8 declarations to 1.91 to match reality.

Adds `scripts/check_msrv.sh` — the gate: reads the declared rust-version and compiles
the whole workspace on exactly that toolchain, failing on drift.
RED-turning mutation (verified locally): revert rust-version to "1.89" → the script
fails (pmcp needs 1.91); at 1.91 it passes ("✓ workspace builds on its declared MSRV").

Follow-up (deferred until the ci.yml-editing PRs land + queue is healthy): wire
check_msrv.sh into ci.yml as a job so drift is caught per-PR, not just on demand.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@noahgift
noahgift force-pushed the agent/rank14-msrv branch from dbda996 to e05e4ff Compare July 6, 2026 06:33
@noahgift
noahgift added this pull request to the merge queue Jul 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 6, 2026
@noahgift
noahgift added this pull request to the merge queue Jul 6, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to no response for status checks Jul 6, 2026
@noahgift

Copy link
Copy Markdown
Contributor Author

Status update — the root MSRV half of this PR has already landed via the v0.61.0 release cut (#2313).

main now has:

Cargo.toml:123  rust-version = "1.91"
Cargo.toml:479  rust-version = "1.91"

I folded it into the release commit because it was not merely unverified — it was provably false: cargo +1.89 check -p aprender fails at resolve time, since the committed lockfile pins pmcp 2.9.0 and wasmtime 43.0.2, both requiring 1.91.0. cargo install aprender could not succeed on the toolchain we advertised, and publishes are immutable, so fixing it after the cut would have cost a release.

That leaves this PR with the two parts that are still genuinely open:

  1. The per-crate rust-version overrides this PR touches (aprender-train 1.87, aprender-graph and 8 others 1.75, aprender-verify-ml 1.70) — untouched by the release fix.
  2. Wiring scripts/check_msrv.sh into CI. It is currently referenced by zero workflows and zero Makefile targets, so it enforces nothing. Without that wiring this is a one-time correction rather than a gate, and the drift returns.

Needs a rebase onto main before it can move — the root Cargo.toml hunks will now conflict, since they are already applied.

Note for whoever wires the gate: check_runner_labels.sh’s DISCRIM accepts cuda|ada|rtx4090, so an MSRV job can pin lambda-4090 if a rustup toolchain install inside the sovereign-ci container proves awkward.

@noahgift
noahgift added this pull request to the merge queue Jul 28, 2026
Merged via the queue into main with commit a7470c8 Jul 28, 2026
11 checks passed
@noahgift
noahgift deleted the agent/rank14-msrv branch July 28, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant