Skip to content

ci: make releases fully tag-driven across all version fields#21

Merged
DGINXREAL merged 1 commit into
mainfrom
ci/tag-driven-versions
Jul 1, 2026
Merged

ci: make releases fully tag-driven across all version fields#21
DGINXREAL merged 1 commit into
mainfrom
ci/tag-driven-versions

Conversation

@DGINXREAL

Copy link
Copy Markdown
Member

Problem

v0.2.0 shipped inconsistent: Windows/Linux installers and the macOS app were 0.1.2 (from tauri.conf.json), while the tag and the embedded widget were 0.2.0. The release workflow only synced package.json from the tag, so tauri.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], and Cargo.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:

  • changelog job — bumps everything and commits all the files back to main (previously only package.json + CHANGELOG.md).
  • Windows/Linux build and macOS build — bump in-place before building so artifacts match.

After this, tagging vX.Y.Z is all that's needed — no hand-editing four files.

Validated locally: running set-version.sh 0.2.0 sets all five fields to 0.2.0 and leaves deps (e.g. rusqlite = 0.40.1) unchanged; YAML parses; scripts pass bash -n.

Follow-up

Re-cutting v0.2.0 after this merges will produce consistent 0.2.0 artifacts across all platforms.

🤖 Generated with Claude Code

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>
@DGINXREAL DGINXREAL merged commit f8c1183 into main Jul 1, 2026
1 of 2 checks passed
@DGINXREAL DGINXREAL deleted the ci/tag-driven-versions branch July 1, 2026 08:17
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