From 295cfe8e7a75e5155d9a43c65a3d32208992cf40 Mon Sep 17 00:00:00 2001 From: forkwright Date: Sun, 16 Aug 2026 15:40:37 -0500 Subject: [PATCH] chore: pin the toolchain to 1.97.1 instead of floating on stable `stable` is not a version -- it names whatever each host last downloaded. metis resolved it to 1.95.0 while CI installed 1.97.1, so two minor versions of new clippy lints sat between the compiler a change is checked with and the compiler that gates its merge. Under `-D warnings` such a lint is invisible locally and fatal in CI, and it presents as a broken local tool rather than a version gap. A floating pin is therefore worse than a stale fixed one: a stale pin is at least reproducible and legible, while `stable` diverges from itself across hosts and across time with nothing recording it. 1.97.1 matches kanon and typikon and is the current stable. No workflow passes an explicit `toolchain:` to a gate job, so this file is what they honour. The one `nightly` in the repo is `codeql.yml`'s `rust_toolchain` input to the shared analyzer, which is unaffected by this file and stays as it is. Refs forkwright/kanon#3336 --- rust-toolchain.toml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 73cb934..d9aaeb7 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,13 @@ +# WARNING: an exact version, not `stable`. `stable` names whatever each host last +# downloaded, so it differs between a developer's machine and CI and drifts on its +# own over time -- metis resolved it to 1.95.0 while CI installed 1.97.1, putting +# two minor versions of new clippy lints between a local check and the gate that +# merges it. Under `-D warnings` those lints are invisible locally and fatal in CI, +# and the failure reads as a broken local tool rather than a version gap. +# +# 1.97.1 is the fleet pin (kanon, typikon) and the current stable. Raising it is a +# deliberate act with its own PR, so the lint fallout arrives on its own and never +# mixes into an unrelated diff. Canon: kanon#3336. [toolchain] -channel = "stable" +channel = "1.97.1" components = ["rustfmt", "clippy"]