fix: unbreak tag releases after the dependabot batch, correct MSRV, drop unused indicatif - #10
Merged
Merged
Conversation
The github-actions dependabot PR (#1) hand-edited six `actions/checkout@v6` -> `@v7` lines inside `.github/workflows/release.yml`. That file is GENERATED by cargo-dist, and the `plan` job verifies it against the generator, so `dist plan` has been failing on main ever since. This was not merely a red check. `plan` is also the FIRST job of the real release workflow, so the next `vX.Y.Z` tag push would have failed to release before building a single artefact. There is no upgrade path out of it: cargo-dist 0.32.0 (the pinned version) is the latest published release on both crates.io and upstream GitHub, and no released version emits `checkout@v7`. So the fix is to regenerate the file — `dist generate` reverts exactly those six lines and nothing else. `dist plan` now exits 0 and emits the full plan for all five target triples. The `@v7` bumps in the five hand-written workflows are untouched and fine. Dependabot cannot be told to skip a single file, so it will keep proposing this every week. Documented the trap in dependabot.yml for the next reviewer. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
`indicatif` was declared but referenced nowhere. Verified three ways before removing: a case-insensitive repo-wide search hits only the Cargo.toml line itself; a search for every public API symbol it exposes (ProgressBar, ProgressStyle, MultiProgress, ProgressDrawTarget, HumanBytes, HumanDuration, ProgressIterator, ...) returns nothing; and `cargo check --all-targets` compiles clean without it. It was pure dead weight — build time, supply-chain surface, and a recurring dependabot PR (#6 was a no-op 0.17 -> 0.18 bump on code we never call). Prunes 6 crates from the lock: indicatif, console, encode_unicode, portable-atomic, unicode-width, unit-prefix. Progress reporting, if it ever lands, goes to stderr via `tracing` anyway — stdout is reserved for structured output. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
`rust-version = "1.79"` was false, and had been for a while — it predates the recent dependency batch. Verified empirically rather than by inference: `cargo +1.88 check --all-targets` succeeds, `cargo +1.85` and `cargo +1.86` both fail, with `gimli` and `globset` naming 1.88 (plus `plist` and `time`). Nothing catches this class of drift: `rust-toolchain.toml` selects `stable`, not the MSRV, and every CI job builds `stable` too. So a routine dependency bump can silently raise the real floor while the declared one stays put, and the manifest quietly becomes fiction. With the declared floor now accurate, cargo enforces it — `cargo +1.86` fails with `bugsee-cli@0.7.4 requires rustc 1.88` instead of building a binary that claims to support a toolchain it cannot. CLAUDE.md said "MSRV 1.79 (pinned via `rust-toolchain.toml`)", which was wrong twice over: the version, and the claim that rust-toolchain.toml pins it. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
This was referenced Aug 24, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the seven dependabot PRs (#1, #3–#8) that landed on
main. One ofthem broke the release pipeline in a way that would not have surfaced until the
next tag push. Two other issues turned up while validating.
1. Tag releases were broken (the urgent one)
The github-actions PR (#1) hand-edited six
actions/checkout@v6→@v7linesinside
.github/workflows/release.yml. That file is generated by cargo-dist,and the
planjob verifies it against the generator — sodist planhas beenfailing on
mainsince the merge.This was not just a red check.
planis also the first job of the real releaseworkflow, so the next
vX.Y.Ztag push would have failed before building asingle artefact.
There is no upgrade path out of it: cargo-dist
0.32.0(the pinned version) isthe latest published release on both crates.io and upstream GitHub, and no
released version emits
checkout@v7. The fix is to regenerate —dist generatereverts exactly those six lines and nothing else.
The
@v7bumps in the five hand-written workflows are untouched and correct.Dependabot cannot be told to skip a single file, so it will keep proposing this
every week; the trap is now documented in
dependabot.ymlfor the next reviewer.2.
rust-version = "1.79"was falsePredates this batch. Verified empirically, not by inference:
cargo +1.88 check --all-targetscargo +1.86gimli,globsetrequire 1.88cargo +1.85icu_*at 1.86Nothing catches this drift:
rust-toolchain.tomlselectsstable, not the MSRV,and every CI job builds
stabletoo. A routine bump can raise the real floorwhile the declared one stays put.
With the floor accurate, cargo enforces it —
cargo +1.86now fails withbugsee-cli@0.7.4 requires rustc 1.88rather than producing a binary claimingsupport for a toolchain it cannot build on.
CLAUDE.mdsaid "MSRV 1.79 (pinned viarust-toolchain.toml)" — wrong twiceover, both the version and the pinning claim. Corrected.
3. Dropped unused
indicatifReferenced nowhere. Confirmed three ways: repo-wide case-insensitive search hits
only the
Cargo.tomlline itself; a search for every public API symbol itexposes (
ProgressBar,ProgressStyle,MultiProgress,ProgressDrawTarget,HumanBytes,HumanDuration,ProgressIterator, …) returns nothing; andcargo check --all-targetscompiles clean without it.PR #6 was a no-op
0.17 → 0.18bump on code we never call. Prunes 6 crates fromthe lock:
indicatif,console,encode_unicode,portable-atomic,unicode-width,unit-prefix.Validation
Every CI job replicated locally, matching the workflows exactly — including the
global
RUSTFLAGS: "-D warnings"andcargo test --all-targets:ci.yml/ rustfmtci.yml/ clippyci.yml/ teste2e.ymlrelease.yml/ plannpm-publish.yml,mirror-to-s3.yml, andwindows-e2e.ymlareworkflow_dispatchagainst a published tag and need AWS/npm credentials — not locally runnable, not
affected.
Wire format is unchanged. Since the batch included
zip2.4.2 → 7.2.0, Ipacked an artefact + mapping with this branch's binary and compared against the
archive produced by
e7de272(pre-dependabot): byte-identical — same entrynames, method 0 stored for the artefact, method 93 (Z_STANDARD) for
mapping.txt,same fixed 1980-01-01 mtime, extract-version, and flag bits.
Not included
docs/unity-il2cpp-linenumber-mappings.mdhas unrelated in-progress edits in theworking tree; deliberately left out of this branch.
🤖 Generated with Claude Code