Add an advisory CI job on latest stable

Pinning CI meant a future Rust release could break the build without
anyone noticing until the pin moved. This job tracks latest stable and
runs the test suite and clippy, so that breakage is visible early.

Marked `continue-on-error`, so it reports rather than gates: a new
clippy lint landing in stable should not fail a pull request that did
not cause it. The pinned `test` job remains the gate.

Note that GitHub renders a `continue-on-error` job as passing with an
annotation rather than as failed. If it should be more visible, make it
a required check and drop the flag.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 19:01:42 -04:00
co-authored by Claude Opus 5
parent ad9553516e
commit aa802bc40c
3 changed files with 26 additions and 1 deletions
+7
View File
@@ -23,6 +23,13 @@ Two versions are pinned, and **three places must agree** when either moves:
| Dev toolchain | 1.99.1 | `devVersion` in `flake.nix`, `test` job in `ci.yml` |
| MSRV | 1.88 | `msrvVersion` in `flake.nix`, `rust-version` in `Cargo.toml`, `msrv` job in `ci.yml` |
CI has a third job, `stable`, which tracks latest stable and is marked
`continue-on-error`. It is **advisory, not a gate**: it exists so a new
Rust release that breaks the build or fires a new clippy lint shows up
before the pin moves, without failing a pull request that did not cause it.
Check it when bumping `devVersion` — if it is red, the bump needs work
first. Nothing needs to stay in sync with it.
The MSRV is set by the **dependency graph**, not by this crate's code:
`reqwest` pulls in `url` → `idna` → `idna_adapter` → `icu_*`, and the `icu`
crates require 1.88. Recheck the floor after a dependency bump with: