Skip to content

rust-version 1.95, checked in CI - #152

Merged
rendro merged 2 commits into
w2/docs-and-idiomsfrom
w2/rust-version
Oct 24, 2026
Merged

rendro merged 2 commits into
w2/docs-and-idiomsfrom
w2/rust-version

Conversation

@rendro

@rendro rendro commented Oct 24, 2026

Copy link
Copy Markdown
Owner

Lane D, PR 4 of 4 (wave 2). Stacked on #151.

  1. Cargo.toml: rust-version = "1.95". Measured by bisecting stable releases with check --lib --bins, no-default and all-features, with the lockfile. 1.94 fails on if-let guards (14 sites). 1.95.0 passes both, and all-features --all-targets too. The dependencies need at most 1.88. clippy 1.99 with the msrv set (incompatible_msrv) is clean both ways.
  2. CI: a new job, "Check on rust-version". It reads rust-version from Cargo.toml, so there is one source of truth, installs that toolchain (minimal profile), and runs check with no default features and with all features. No cache; timeout 20 minutes.

No compiled code changes.

@rendro
rendro added this pull request to stack #150 October 24, 2026 04:38
Measured with each toolchain's check of the library and the binary,
with no features and with all of them, against the lockfile: 1.95.0
builds both (and every target, tests and benches, with all features);
1.94.0 does not, and neither does anything older (1.92 and 1.88 tried
too). What needs 1.95 is silt's own code: its `if let` guards in match
arms (14 of them, compiler/mod.rs and others). 1.88 also lacks
`panic_payload_as_str` and the longer-lived temporaries that seven
borrows rely on. The dependencies ask for 1.88 at most (time, home).

With rust-version set, cargo refuses an older toolchain with a message
that names the version instead of compile errors, and clippy's
incompatible_msrv lint checks the std APIs used against it (clean).
The job reads `rust-version` from Cargo.toml (one place holds it),
installs that toolchain and checks the library and the binary with no
features and with all of them. Code that needs a newer Rust than the
one Cargo.toml names then fails in CI, not where someone builds silt,
and raising rust-version is a one-line change the job follows. It keeps
no cache (the repository's cache is over its limit, and no other job
uses this toolchain), so it builds the dependencies each time: a few
minutes, beside the other jobs.
@rendro
rendro marked this pull request as ready for review October 24, 2026 12:06
@rendro
rendro merged commit 58a95d7 into main Oct 24, 2026
24 of 48 checks passed
@rendro
rendro deleted the w2/rust-version branch October 24, 2026 13:10
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