Pin the core dependency to a tag instead of tracking main - #25
Merged
Merged
Conversation
The five core crates were declared as `branch = "main"`, so every `cargo update` took whatever was on that branch at the time. Nothing has broken yet, but only by luck: the lock sat on `6d27617` (core v0.1.0) while core moved 127 commits to v0.29.0, and across that span the crates we consume changed by four lines in total — three `description` fields and one doc comment. There was nothing to collide with. That stops being true now. The shared layer is about to be worked on, so an unpinned branch turns every core merge into a coin flip on this build. The desktop app has always pinned a tag; this does the same. Moving the lock from v0.1.0 to v0.29.0 compiles clean across the workspace with no source changes, which is the same fact stated a second way. Co-Authored-By: Claude Opus 5 <[email protected]>
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.
Why
The five core crates were declared as
branch = "main", so everycargo updatetook whatever happened to be on that branch.Nothing has broken yet, but only by luck. The lock sat on
6d27617(core v0.1.0) while core moved 127 commits to v0.29.0 — and across that entire span, the crates we consume changed by four lines:descriptionfield)There was nothing to collide with, so tracking a moving branch cost nothing.
That is about to stop being true: the shared layer between this repo and core is going to be worked on, and an unpinned branch would turn every core merge into a coin flip on this build. The desktop app has always pinned a tag; this does the same.
What
branch = "main"→tag = "v0.29.0"incrates/common/Cargo.tomlandcrates/gateway/Cargo.toml, plus the resultingCargo.lockmove.No source changes.
cargo check --workspace --all-targetsis clean — which is the table above stated a second way.🤖 Generated with Claude Code