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:
@@ -34,3 +34,19 @@ jobs:
|
||||
# and pinning those to the oldest supported toolchain is not useful.
|
||||
- uses: dtolnay/rust-toolchain@1.88.0
|
||||
- run: cargo test
|
||||
|
||||
stable:
|
||||
name: Latest stable (advisory)
|
||||
runs-on: ubuntu-latest
|
||||
# Advisory only. The pinned `test` job is the gate; this one exists so
|
||||
# that a new stable release breaking the build or firing a new clippy
|
||||
# lint is visible before the pin moves, without failing a pull request
|
||||
# that did not cause it. Check it when bumping `devVersion`.
|
||||
continue-on-error: true
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
components: clippy
|
||||
- run: cargo test
|
||||
- run: cargo clippy --all-targets -- -D warnings
|
||||
|
||||
+3
-1
@@ -12,7 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- A declared minimum supported Rust version of **1.88**, verified by running
|
||||
the test suite against it. The floor comes from the dependency graph
|
||||
(`reqwest` → `url` → `idna` → `icu_*`), not from this crate's own code.
|
||||
CI builds on both the MSRV and the pinned dev toolchain.
|
||||
CI builds on both the MSRV and the pinned dev toolchain, plus an advisory
|
||||
job on latest stable that reports breakage from a new Rust release
|
||||
without gating pull requests.
|
||||
- Wrappers for every one of the API's 34 `Route::resource` groups, plus
|
||||
`users` — 265 methods. See `COVERAGE.md` for the per-endpoint inventory.
|
||||
- `COVERAGE.md`, a detailed record of what is wrapped, what is not, and why,
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user