ci: make releases fully tag-driven across all version fields#21
Merged
Conversation
v0.2.0 shipped with mismatched versions: the Windows/Linux artifacts and the macOS app were 0.1.2 (from tauri.conf.json) while the tag and the widget were 0.2.0, because the workflow only synced package.json. Add scripts/set-version.sh, which sets the version in package.json, tauri.conf.json, Cargo.toml and both lockfiles (node/npm/perl only, no Rust toolchain needed). Call it from all three release contexts — the changelog job (which now commits every bumped file back to main) and the Windows/Linux and macOS build jobs — so tagging vX.Y.Z is enough and all artifacts match. Co-Authored-By: Claude Opus 4.8 <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.
Problem
v0.2.0shipped inconsistent: Windows/Linux installers and the macOS app were0.1.2(fromtauri.conf.json), while the tag and the embedded widget were0.2.0. The release workflow only syncedpackage.jsonfrom the tag, sotauri.conf.json/Cargo.toml(which drive the app + Win/Linux artifact versions) were left stale.Fix — releases become fully tag-driven
scripts/set-version.sh <version>sets the version in every place:package.json(+ lock),tauri.conf.json,Cargo.toml[package], andCargo.lock's notefix entry. Uses only node/npm/perl (no Rust toolchain), and leaves dependency versions untouched.It's called from all three release contexts:
main(previously onlypackage.json+CHANGELOG.md).After this, tagging
vX.Y.Zis all that's needed — no hand-editing four files.Validated locally: running
set-version.sh 0.2.0sets all five fields to 0.2.0 and leaves deps (e.g.rusqlite = 0.40.1) unchanged; YAML parses; scripts passbash -n.Follow-up
Re-cutting
v0.2.0after this merges will produce consistent0.2.0artifacts across all platforms.🤖 Generated with Claude Code