fix(release): teach bump-version.sh about benchmarks/Cargo.toml's pin#111
Merged
Conversation
The bench crate (added in SQLR-16) is `version = "0.0.0"` on purpose — it's an internal-only workspace member that never publishes. But its `sqlrite-engine` dep still pins a concrete version that has to track the workspace bump or `cargo build` fails with `failed to select a version for the requirement sqlrite-engine = "^0.X.Y"`. This is exactly what tripped the v0.9.0 Release PR workflow today (GH Action run 25559263224) — bump-version.sh missed the bench manifest's pin because the file isn't in TOML_FILES. Adds a new `PIN_ONLY_TOML_FILES` array for unpublished workspace members. Files in that list go through only the path-pinned dep sweep (`version = "X" path = "..."` → `version = "<bump>"`), not the top-level `version = "..."` sed — so the bench crate's own 0.0.0 stays put while its `sqlrite-engine` pin tracks main. The verification sweep already iterates over `TOML_FILES`; widened it to also cover `PIN_ONLY_TOML_FILES` so a future regression here is caught at script time, not at workflow time. Smoke-tested locally: `bash scripts/bump-version.sh 0.9.0` now rewrites benchmarks/Cargo.toml's pin correctly while leaving its package version at 0.0.0; full workspace `cargo build` resolves. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
The v0.9.0 Release PR workflow (Action run 25559263224) failed at the
Refresh Cargo.lockstep:benchmarks/Cargo.tomlwas added by SQLR-16 (Phase 9). The bench crate is unpublished (version = "0.0.0"on purpose, internal-only), so it was deliberately left out ofTOML_FILES. But its inter-workspace dep pin (sqlrite = { package = "sqlrite-engine", path = "..", version = "0.8.0", ... }) still has to track the workspace bump orcargo buildcan't resolve.Fix
Adds a new
PIN_ONLY_TOML_FILESarray for unpublished workspace members. Files in that list go through only the path-pinned dep sweep (version = "X"on lines that also carrypath = "..."→version = "<bump>"), not the top-levelversion = "..."sed — so the bench crate's own0.0.0stays put while itssqlrite-enginepin tracks main.The verification sweep already iterates over
TOML_FILES; widened it to also coverPIN_ONLY_TOML_FILESso a future regression is caught at script time, not at workflow time.Test plan
Smoke-tested locally:
bash scripts/bump-version.sh 0.9.0succeeds with the new file in scopebenchmarks/Cargo.tomlpin rewritten:version = "0.8.0"→version = "0.9.0"benchmarks/Cargo.tomlpackage version unchanged: stillversion = "0.0.0"cargo build --workspace --exclude sqlrite-{desktop,python,nodejs}resolves cleanlygit checkout .reverts the bump (no smuggled artifacts)After merge, re-firing the Release PR workflow with
version=0.9.0should land the SQLR-23 release.🤖 Generated with Claude Code