Repository navigation
base red: DiffSidecar Cargo.lock lists cmux-git's serde_json - #34935
Conversation
…ndency #34782 added serde_json to cmux-git, a path dependency of Native/DiffSidecar, without updating its Cargo.lock. Every fleet app build then failed at the diff-sidecar step (cargo --locked: cannot update the lock file). cargo check --locked in Native/DiffSidecar (rbx): exit 101 on the base, exit 0 with this change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: Shipped in:
|
|
For awareness: this red also stops fleet DEV builds of the current base tip. The build fails at the |
|
Review (claude-reviewer-34935): SHIP at f1942ca What I checked (read-only, no local cargo/swift/xcodebuild):
Observed / Not run
|
|
For awareness: this is blocking every fresh source build of feat-cmux-next right now. The diff-sidecar step fails with "cannot update the lock file Native/DiffSidecar/Cargo.lock because --locked was passed" (exit 101). Three capture builds hit it today, at 54f747e, 291f606 and the tip 6052a7d, so no DEV build or capture of the tip can run. The one-line lockfile change here fixes it. Our landers only count ready-to-land as an opt-in when the PR author adds it, so this will not autoland on the current label. @austinywang, if you add ready-to-land yourself, or turn on auto-merge, it lands on the next pass. |
…tale-lock 1; rustup's cargo first; the fix names the pin Review findings on #35066 (HOLD at 43d8a44): no git checkout, no git, a failed git ls-files or an exception exited 1, the code that means a stale lock. Now they print "not checked" and exit 2. cargo_bin() looks in $CARGO_HOME/bin before PATH (the build scripts do the same; another cargo ignores the pins). The fix line names the toolchain for a crate with no pin file of its own (optchat-chief: cargo +1.95.0 update --workspace). Red at a98d3dd (before #34935), this version: STALE Native/DiffSidecar: error: cannot update the lock file .../Native/DiffSidecar/Cargo.lock because --locked was passed to prevent this check-cargo-locks: 1 stale of 29 Cargo.lock: Native/DiffSidecar. Fix: (cd Native/DiffSidecar && cargo update --workspace), then commit only the lock. exit=1 (28 other lines: OK) Green at f1942ca (#34935 head): (29 lines: OK) check-cargo-locks: all 29 Cargo.lock resolve with --locked exit=0 Not a git checkout (--repo /tmp) and no git on PATH: "check-cargo-locks: not checked: ...", exit=2.
…rejects (#35066) * cmux-next: check-cargo-locks.py finds every Cargo.lock that --locked rejects The Linux compile check stayed green for hours while every Release dogfood build failed with "cannot update the lock file .../Native/DiffSidecar/Cargo.lock because --locked was passed": #34782 added serde_json to cmux-tui/crates/cmux-git, Native/DiffSidecar uses cmux-git by path, and its own lock was not updated (fixed by #34935). scripts/cmux-next/check-cargo-locks.py runs `cargo metadata --locked --format-version 1` (a full resolve; it compiles nothing) for the folder of every tracked Cargo.lock and every crate folder the Release build compiles with --locked, each with the toolchain that build uses (its rust-toolchain file, else the cmux-tui pin). One line per lock: "OK dir", "STALE dir: <cargo's error>" or "ERROR dir: <cargo's error>"; exit 1 on a stale lock, 2 when a folder could not be checked. `--no-deps` does not resolve and `cargo update --dry-run` ignores --locked, so neither sees this red. It is not a CI job: the lead's tip watcher and the dogfood builder's preflight run it (Lawrence: no new CI gates). Red at a98d3dd (before #34935), 2.2 s: STALE Native/DiffSidecar: error: cannot update the lock file .../Native/DiffSidecar/Cargo.lock because --locked was passed to prevent this (28 other lines: OK) check-cargo-locks: 1 stale of 29 Cargo.lock: Native/DiffSidecar. Run `cargo update --workspace` in each (no other change) and commit the lock. exit=1 Green at f1942ca (#34935's head: the DiffSidecar lock lists serde_json): (29 lines: OK) check-cargo-locks: all 29 Cargo.lock resolve with --locked exit=0 * check-cargo-locks: a fault of the script or host exits 2, never the stale-lock 1; rustup's cargo first; the fix names the pin Review findings on #35066 (HOLD at 43d8a44): no git checkout, no git, a failed git ls-files or an exception exited 1, the code that means a stale lock. Now they print "not checked" and exit 2. cargo_bin() looks in $CARGO_HOME/bin before PATH (the build scripts do the same; another cargo ignores the pins). The fix line names the toolchain for a crate with no pin file of its own (optchat-chief: cargo +1.95.0 update --workspace). Red at a98d3dd (before #34935), this version: STALE Native/DiffSidecar: error: cannot update the lock file .../Native/DiffSidecar/Cargo.lock because --locked was passed to prevent this check-cargo-locks: 1 stale of 29 Cargo.lock: Native/DiffSidecar. Fix: (cd Native/DiffSidecar && cargo update --workspace), then commit only the lock. exit=1 (28 other lines: OK) Green at f1942ca (#34935 head): (29 lines: OK) check-cargo-locks: all 29 Cargo.lock resolve with --locked exit=0 Not a git checkout (--repo /tmp) and no git on PATH: "check-cargo-locks: not checked: ...", exit=2. * check-cargo-locks: a missing lock is STALE (exit 1), not a host fault Review CHANGES at 43f2832 (claude-reviewer-35066): when a Release crate has no Cargo.lock, cargo says "cannot create the lock file ... because --locked was passed", which the STALE pattern did not match, so the script said ERROR and exited 2 (not checked). The Release build fails on that crate too, so it is stale. Red before: with cmux-tui/crates/cmux-rd-ffi/Cargo.lock removed, ERROR, exit 2 (reviewer's run). Green now: STALE cmux-tui/crates/cmux-rd-ffi, exit 1.
Summary
#34782 added
serde_jsontocmux-git, whichNative/DiffSidecaruses as a path dependency. It did not updateNative/DiffSidecar/Cargo.lock. Since then, every fleet app build offeat-cmux-nextfails at thediff-sidecarstep:Seen in fleet job
b4eae8e0f47c10bcdd706cac(#25858 head0c5dfeae35, based689309fe955).This change adds
serde_jsontocmux-git's dependency list in that lockfile. The lockfile already has only oneserde_jsonversion, so nothing else changes.Testing
cargo check --lockedinNative/DiffSidecaron rbx:d689309fe955(the error above);Observed / Not run
cargo check --lockedruns above.Changelog
none
risk: low (lockfile)
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes fleet app builds of
feat-cmux-nextfailing at thediff-sidecarstep. A recent change addedserde_jsontocmux-git, butNative/DiffSidecar/Cargo.lockwasn't updated, socargo --lockedaborted. This listsserde_jsonin that lockfile; no other dependency versions change.Verified with
cargo check --lockedinNative/DiffSidecar: it exits 101 on the base and 0 with this change.Written for commit f1942ca. Summary will update on new commits.