Skip to content

fix(build): resync Cargo.lock after the mtgish-import removal - #7588

Merged
matthewevans merged 1 commit into
mainfrom
ship/resync-cargo-lock
Aug 21, 2026
Merged

fix(build): resync Cargo.lock after the mtgish-import removal#7588
matthewevans merged 1 commit into
mainfrom
ship/resync-cargo-lock

Conversation

@matthewevans

Copy link
Copy Markdown
Member

chore: remove mtgish importer (#7556) deleted crates/mtgish-import, whose
serde_with = "3" was the sole consumer of a 22-package subtree (schemars,
darling, chrono, bs58, hex, windows-*, and a second indexmap). The regenerated
root lockfile was never committed, so cargo metadata --locked fails on main
and any cargo invocation rewrites Cargo.lock in place.

That is what breaks Nightly Release. cargo release --execute refuses to run
against a dirty tree:

error: uncommitted changes detected, please resolve before release:
         Cargo.lock (Status(WT_MODIFIED))

Nightly last succeeded 2026-08-19 09:47Z, hours before #7556 merged that
evening, and has failed every night since.

Pure pruning, no version changes: 22 [[package]] blocks removed, and every
addition is an "indexmap" dependency line losing its version qualifier now
that a single indexmap version remains. Verified by regenerating in a clean
worktree at origin/main -- byte-identical result, and cargo metadata --locked
passes afterwards.

CI did not catch this because --locked is used only for the Tauri manifest
(ci.yml:680,687), never for the root workspace.

Claude-Session: https://claude.ai/code/session_01DJgbxMGnPi6MFfGUe15Y3P

`chore: remove mtgish importer (#7556)` deleted `crates/mtgish-import`, whose
`serde_with = "3"` was the sole consumer of a 22-package subtree (schemars,
darling, chrono, bs58, hex, windows-*, and a second indexmap). The regenerated
root lockfile was never committed, so `cargo metadata --locked` fails on main
and any cargo invocation rewrites Cargo.lock in place.

That is what breaks Nightly Release. `cargo release --execute` refuses to run
against a dirty tree:

    error: uncommitted changes detected, please resolve before release:
             Cargo.lock (Status(WT_MODIFIED))

Nightly last succeeded 2026-08-19 09:47Z, hours before #7556 merged that
evening, and has failed every night since.

Pure pruning, no version changes: 22 [[package]] blocks removed, and every
addition is an `"indexmap"` dependency line losing its version qualifier now
that a single indexmap version remains. Verified by regenerating in a clean
worktree at origin/main -- byte-identical result, and `cargo metadata --locked`
passes afterwards.

CI did not catch this because `--locked` is used only for the Tauri manifest
(ci.yml:680,687), never for the root workspace.

Claude-Session: https://claude.ai/code/session_01DJgbxMGnPi6MFfGUe15Y3P
@matthewevans
matthewevans enabled auto-merge August 21, 2026 18:10
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock

CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including **/dist/** will override the default block on the dist directory, by removing the pattern from both the lists.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 1f17d0cb-b06d-4c1c-b206-627e8c20f654

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@matthewevans
matthewevans added this pull request to the merge queue Aug 21, 2026
@github-actions

Copy link
Copy Markdown

Generated for head b7a3270d34c7499a24915fcd94a4432ddbadc46e.

Parse changes introduced by this PR

✓ No card-parse changes detected.

Merged via the queue into main with commit 9f1cfcc Aug 21, 2026
15 checks passed
@matthewevans
matthewevans deleted the ship/resync-cargo-lock branch August 21, 2026 18:46
lgray pushed a commit to lgray/phase that referenced this pull request Aug 21, 2026
`--locked` on the existing workspace clippy invocation costs no extra CI time --
that step already resolves the whole workspace -- and turns silent lockfile drift
into a fast, explicit failure.

Without it, removing a crate leaves its dependency subtree stranded in
Cargo.lock, every later cargo invocation rewrites the file in place, and CI stays
green because no root-workspace command passed `--locked`. Nightly Release is
where it surfaces, because `cargo release --execute` aborts on a dirty tree:

    error: uncommitted changes detected, please resolve before release:
             Cargo.lock (Status(WT_MODIFIED))

That is exactly how phase-rs#7556 (remove mtgish importer) broke three consecutive
nightlies before phase-rs#7588 resynced the lock. `--locked` was already used for the
Tauri manifest; this extends the same guarantee to the root workspace.

Verified both directions against origin/main in an isolated worktree: with the
pre-phase-rs#7588 lockfile the guarded command exits 101 in under two seconds on
"cannot update the lock file ... because --locked was passed", before compiling
anything; with the current lockfile it clears resolution and proceeds to compile
normally.

Claude-Session: https://claude.ai/code/session_01DJgbxMGnPi6MFfGUe15Y3P

Co-authored-by: matthewevans <matthewevans@users.noreply.github.com>
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.

1 participant