Skip to content

ci(deps): stop Dependabot proposing a toolchain bump it structurally cannot complete - #805

Merged
cryptskii merged 1 commit into
mainfrom
ci/dependabot-ignore-the-toolchain-mirror
Sep 9, 2026
Merged

cryptskii merged 1 commit into
mainfrom
ci/dependabot-ignore-the-toolchain-mirror

Conversation

@cryptskii

Copy link
Copy Markdown
Collaborator

Noticed while surveying the open-PR queue: #782 can never merge, and neither can any successor to it.

dtolnay/rust-toolchain's tag is the Rust version, and every uses: pin of it — nine across ci.yml and release.yml — is a mirror of rust-toolchain.toml, which that file itself calls "the SOLE NORMATIVE declaration". ci/check_toolchain_consistency.sh exists specifically to prove the two equal, and runs in both make lint and ci/production_safety_checks.sh.

A Dependabot bump of the action moves the mirrors and cannot move the normative file, so the consistency gate fails by design. #782 (1.98.0 → 1.120.0) is the demonstration: Rust, Coverage, Embedded and Storage Node all red on a change that touched no code, and it has sat open since.

What this changes

One ignore entry for dtolnay/rust-toolchain in the github-actions ecosystem, with the reasoning inline so the next reader does not have to re-derive it.

No pin moves and no gate weakens. The nine uses: pins stay exactly where they are, rust-toolchain.toml is untouched, and the consistency script is untouched. The only change is that Dependabot stops opening a PR that is structurally unmergeable.

Moving the toolchain remains a deliberate, coordinated edit: rust-toolchain.toml first, then every mirror, in one change, with the consistency gate green. Dependabot cannot author that, which is exactly why it should not keep proposing half of it.

Not done here

#782 is left open for you to close. Closing someone's PR is your call, not mine; this only stops the next one from being opened.

YAML shape verified by hand against the two existing ignore blocks: three ecosystems, ignore: at indent 4 in all three, - dependency-name: at indent 6 in all five entries.

…cannot complete

`dtolnay/rust-toolchain`'s tag IS the Rust version, and every `uses:` pin of it
is a MIRROR of rust-toolchain.toml — which that file calls the sole normative
declaration. `ci/check_toolchain_consistency.sh` exists to prove the two equal
and runs in both `make lint` and the production safety checks.

So a Dependabot bump of this action can never merge. It moves the mirrors and
cannot move the normative file, so the consistency gate fails by design. PR
#782 (1.98.0 -> 1.120.0) is the demonstration: Rust, Coverage, Embedded and
Storage Node all red on a change that touched no code, and it has sat open
since.

Moving the toolchain is a deliberate, coordinated edit — rust-toolchain.toml
first, then every mirror in ci.yml and release.yml, in one change, with the
consistency gate green. Dependabot cannot author that, so it should not keep
proposing half of it. Ignoring the action removes a permanently-red PR from
the queue without weakening any pin: the pins stay exactly where they are, and
the gate that proves them equal is untouched.

#782 itself is left open for the owner to close; this only stops the next one.
@cryptskii
cryptskii merged commit 0836b67 into main Sep 9, 2026
16 checks passed
@cryptskii
cryptskii deleted the ci/dependabot-ignore-the-toolchain-mirror branch September 9, 2026 14:08
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.

2 participants