Skip to content

fix(ci): sync client/src-tauri/Cargo.lock with the v0.35.2 version bump#6568

Merged
matthewevans merged 1 commit into
mainfrom
fix/tauri-lock-v0352
Jul 23, 2026
Merged

fix(ci): sync client/src-tauri/Cargo.lock with the v0.35.2 version bump#6568
matthewevans merged 1 commit into
mainfrom
fix/tauri-lock-v0352

Conversation

@matthewevans

Copy link
Copy Markdown
Member

Problem

tauri-check is failing on every open PR whose merge ref includes the v0.35.2 release commit:

error: cannot update the lock file /home/runner/work/phase/phase/client/src-tauri/Cargo.lock
       because --locked was passed to prevent this

release: v0.35.2 (21a53d5) bumped client/src-tauri/Cargo.toml to 0.35.2 via cargo-release's pre-release-replacements (root Cargo.toml line 27), but client/src-tauri/ is a separate cargo workspace with its own lockfile that cargo-release does not manage. The lock still recorded phase-tauri 0.35.1, so cargo check --locked refused to reconcile and exited 101.

Why this is a merge blocker, not cosmetic

Tauri compile check is not itself a repo-required context, but the required aggregator Rust (fmt, clippy, test, coverage-gate) declares needs: [rust-lint, rust-test, card-data-gate, draft-pools, wasm-check, tauri-check] and fails unless every result is success or skipped. So the failing job reds a required check on all affected PRs and stalls the merge queue repo-wide.

Evidence (pass→fail flips exactly at the release commit)

PR run created (UTC) tauri-check
#6561 20:43:00Z pass
20:49:54Z release: v0.35.2 lands
#6564 20:56:21Z fail
#6563 21:15:11Z fail

None of those three PRs touches any Cargo manifest or lockfile — the failures are entirely maintainer-caused.

Change

One line: phase-tauri 0.35.10.35.2 in client/src-tauri/Cargo.lock. Verified byte-identical to the lock cargo itself produces for that manifest.

Follow-up (deliberately not in this PR)

cargo-release should keep the nested client/src-tauri/Cargo.lock in sync so the next release does not re-break this. That touches release infrastructure and wants its own maintainer review — filing separately rather than bundling it into an unblock.

`release: v0.35.2` (21a53d5) bumped `client/src-tauri/Cargo.toml` to
0.35.2 via cargo-release's `pre-release-replacements`, but
`client/src-tauri/` is a separate cargo workspace with its own lockfile
that cargo-release does not manage. The lock still recorded
`phase-tauri 0.35.1`, so the `tauri-check` CI job's
`cargo check --locked --manifest-path client/src-tauri/Cargo.toml`
refused to reconcile the mismatch and exited 101.

That reds the required `Rust (fmt, clippy, test, coverage-gate)`
aggregator (which `needs: [... tauri-check]`) on every open PR whose
merge ref includes the release commit, blocking the merge queue
repo-wide.

Evidence: PR #6561 tauri-check PASSED at 20:43:00Z; the release commit
landed at 20:49:54Z; PRs #6564 (20:56:21Z) and #6563 (21:15:11Z) both
FAILED with the identical --locked error. None of the three touched any
Cargo manifest.

Follow-up (not in this change): cargo-release should keep the nested
lockfile in sync so the next release does not re-break it.
@matthewevans matthewevans added the bug Bug fix label Jul 23, 2026
@matthewevans
matthewevans enabled auto-merge July 23, 2026 21:49
@coderabbitai

coderabbitai Bot commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Review was skipped due to path filters

⛔ Files ignored due to path filters (1)
  • client/src-tauri/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: 1252fa1a-6579-4c50-aa92-fa660bc0b6a9

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
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/tauri-lock-v0352

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

@matthewevans
matthewevans added this pull request to the merge queue Jul 23, 2026
@matthewevans
matthewevans removed this pull request from the merge queue due to a manual request Jul 23, 2026
@matthewevans
matthewevans merged commit cb7d5a2 into main Jul 23, 2026
14 checks passed
@matthewevans
matthewevans deleted the fix/tauri-lock-v0352 branch July 23, 2026 22:56
matthewevans added a commit that referenced this pull request Jul 23, 2026
…ps (#6574)

client/src-tauri is its own cargo workspace with its own Cargo.lock, so
the existing pre-release-replacement that bumps its Cargo.toml left the
lock pinning the previous version. The Tauri CI job builds with
`cargo check --locked`, which then refuses to update the lock and fails;
because tauri-check is a `needs:` of the required "Rust (fmt, clippy,
test, coverage-gate)" aggregator, that reds main and every merge-group
ref built on the release commit. v0.35.2 shipped exactly that way and
deadlocked the merge queue (fix landed in #6568).

Verified with `cargo release 0.36.0 --workspace` in dry-run: the new
replacement rewrites only the phase-tauri package's version line.

The newline is kept inside a capture group rather than in the
replacement string: the regex crate expands only ${1}-style references
in a replacement, so a literal \n there would be inserted verbatim and
splice the two lines together.

Co-authored-by: matthewevans <matthewevans@users.noreply.github.com>
matthewevans added a commit to andriypolanski/phase that referenced this pull request Jul 24, 2026
Resolves the deterministic crates/engine/tests/integration/main.rs mod-line
conflict by keeping both test modules in rustfmt-sorted order. Maintainer-side
port: main advanced under this PR tonight (phase-rs#6538 phase-rs#6543 phase-rs#6545 phase-rs#6554 phase-rs#6563 phase-rs#6579).
The phase-tauri 0.35.1->0.35.2 client/src-tauri/Cargo.lock bump is now a no-op,
since main landed the identical bump in phase-rs#6568.
jsdevninja pushed a commit to jsdevninja/phase that referenced this pull request Jul 24, 2026
…mp (phase-rs#6568)

`release: v0.35.2` (21a53d5) bumped `client/src-tauri/Cargo.toml` to
0.35.2 via cargo-release's `pre-release-replacements`, but
`client/src-tauri/` is a separate cargo workspace with its own lockfile
that cargo-release does not manage. The lock still recorded
`phase-tauri 0.35.1`, so the `tauri-check` CI job's
`cargo check --locked --manifest-path client/src-tauri/Cargo.toml`
refused to reconcile the mismatch and exited 101.

That reds the required `Rust (fmt, clippy, test, coverage-gate)`
aggregator (which `needs: [... tauri-check]`) on every open PR whose
merge ref includes the release commit, blocking the merge queue
repo-wide.

Evidence: PR phase-rs#6561 tauri-check PASSED at 20:43:00Z; the release commit
landed at 20:49:54Z; PRs phase-rs#6564 (20:56:21Z) and phase-rs#6563 (21:15:11Z) both
FAILED with the identical --locked error. None of the three touched any
Cargo manifest.

Follow-up (not in this change): cargo-release should keep the nested
lockfile in sync so the next release does not re-break it.

Co-authored-by: matthewevans <matthewevans@users.noreply.github.com>
jsdevninja pushed a commit to jsdevninja/phase that referenced this pull request Jul 24, 2026
…ps (phase-rs#6574)

client/src-tauri is its own cargo workspace with its own Cargo.lock, so
the existing pre-release-replacement that bumps its Cargo.toml left the
lock pinning the previous version. The Tauri CI job builds with
`cargo check --locked`, which then refuses to update the lock and fails;
because tauri-check is a `needs:` of the required "Rust (fmt, clippy,
test, coverage-gate)" aggregator, that reds main and every merge-group
ref built on the release commit. v0.35.2 shipped exactly that way and
deadlocked the merge queue (fix landed in phase-rs#6568).

Verified with `cargo release 0.36.0 --workspace` in dry-run: the new
replacement rewrites only the phase-tauri package's version line.

The newline is kept inside a capture group rather than in the
replacement string: the regex crate expands only ${1}-style references
in a replacement, so a literal \n there would be inserted verbatim and
splice the two lines together.

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

bug Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant