Skip to content

fix(release): sync rust/Cargo.lock in version:bump (stop kind-deploy-smoke drift)#111

Merged
brentrager merged 1 commit into
mainfrom
fix-release-lock-sync
Jun 25, 2026
Merged

fix(release): sync rust/Cargo.lock in version:bump (stop kind-deploy-smoke drift)#111
brentrager merged 1 commit into
mainfrom
fix-release-lock-sync

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

Permanently fixes the recurring Cargo.lock drift that broke kind-deploy-smoke after every 🦋 release (hand-synced in #85 and #108).

Root cause: scripts/sync-versions.mjs (run by version:bump right after changeset version) stamps the anchor version onto every published member’s Cargo.toml [package] version, but never updates rust/Cargo.lock. So the lock pins the OLD versions, and cargo build --locked (kind-deploy-smoke + every release cargo publish) refuses to build until someone hand-runs cargo update --workspace.

Fix: the script now also stamps the lock — bumping the version of each [[package]] whose name is one of the lockstep published members. It keys off the exact published-crate set (derived from the member Cargo.tomls), NOT a broad smooai-smooth-operator* match, so it leaves -core (own 0.14 cadence) and the non-published …-lambda/examples (0.1.0) alone — bumping those would re-break --locked. String-stamping (vs shelling out to cargo update) avoids the CI failure mode where the sibling smooth-operator-core path dep is absent.

Verified: simulated a 1.8.0 release → Cargo.toml + Cargo.lock advance together → cargo build --locked builds; …-lambda stays 0.1.0, …-core stays 0.14.1.

🤖 Generated with Claude Code

…smoke drift)

sync-versions.mjs stamped every published member Cargo.toml [package] version on a
release but never touched rust/Cargo.lock — so the lockfile pinned the OLD versions
and cargo build --locked (kind-deploy-smoke + every release cargo publish) refused
to build until someone hand-synced it (bit #85, #108). Now the script also stamps
the lock: bump the version of each [[package]] whose name is one of the lockstep
published members (NOT -core, NOT the non-published lambda/examples at 0.1.0).
Verified by simulating a 1.8.0 release → toml + lock advance together → --locked
builds; lambda stays 0.1.0, core stays 0.14.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Claude-Session: https://claude.ai/code/session_01U7Mn93HpqhSgEmX6tRdPAv
@changeset-bot

changeset-bot Bot commented Jun 25, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: c93b8fd

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@brentrager brentrager merged commit a22d296 into main Jun 25, 2026
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