Skip to content

Simplify desktop release to tag-and-push - #185

Merged
wesbillman merged 2 commits into
mainfrom
simplify-release
Mar 25, 2026
Merged

wesbillman merged 2 commits into
mainfrom
simplify-release

Conversation

@wesbillman

Copy link
Copy Markdown
Collaborator

Summary

  • Simplify the desktop release process from a two-step prepare/release dance to a single git tag desktop/v<version> && git push (or just desktop-release <version>)
  • Move version bumping into CI — CI extracts version from the git tag, patches package.json, tauri.conf.json, and Cargo.toml, regenerates Cargo.lock, then builds/signs/publishes
  • Remove desktop-prepare recipe and bump-version.mjs — replaced by set-version-from-tag.mjs (pure file-patcher) and CI-side version extraction
  • Enforce single source of truth for version — RELEASE_VERSION env var extracted once from tag; publish scripts now fail fast via requireVersionEnv() instead of silently falling back to stale config files

Changes

  • .github/workflows/sprout-desktop-release.yml — add RELEASE_VERSION job-level env, version-set + cargo generate-lockfile steps
  • desktop/scripts/set-version-from-tag.mjs — new pure file-patcher with semver validation
  • desktop/scripts/bump-version.mjs — deleted (replaced by above)
  • desktop/scripts/publish-dmg-to-github-release.mjs — readVersionFromConfig() → requireVersionEnv()
  • desktop/scripts/publish-updater-to-github-release.mjs — same treatment, removed dead imports
  • justfile — kill desktop-prepare, simplify desktop-release to tag+push, add desktop-set-version and optional version arg to desktop-release-build
  • desktop/RELEASING.md — rewritten for simplified flow

New release flow

just desktop-release 0.3.0

Or:

git tag desktop/v0.3.0
git push origin desktop/v0.3.0

Test plan

  • Verify CI workflow triggers on desktop/v* tag push
  • Confirm pnpm install --frozen-lockfile succeeds after version patching (Beth's medium note — pnpm checks dependency resolution, not root version field)
  • Validate first release builds, signs, and publishes correctly end-to-end
  • Test just desktop-set-version 0.3.0 locally
  • Test just desktop-release-build version=0.3.0 locally

🤖 Generated with Claude Code

wesbillman and others added 2 commits March 25, 2026 15:09
…d VERSION env var

The publish scripts (DMG and updater) had readVersionFromConfig() fallbacks
that read the version from tauri.conf.json. Under the new tag-driven release
flow, the version in config files on main is not the release version — the
git tag is. These fallbacks would silently return the wrong version if
VERSION was unset.

Replace with requireVersionEnv() that fails fast with a clear error message
if VERSION is not provided. CI always sets this from RELEASE_VERSION; local
use requires explicit VERSION=x.y.z.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Move version bumping into CI so the release flow is just
`git tag desktop/v<version> && git push`. CI extracts the version from
the tag, patches package.json / tauri.conf.json / Cargo.toml, regenerates
Cargo.lock, then builds, signs, and publishes.

- Add set-version-from-tag.mjs (pure file-patcher, replaces bump-version.mjs)
- Add RELEASE_VERSION job-level env var as single source of truth in CI
- Add cargo generate-lockfile step after version patching
- Simplify justfile: kill desktop-prepare, desktop-release is now tag+push
- Add desktop-set-version and optional version arg to desktop-release-build
- Rewrite RELEASING.md for the simplified flow

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@wesbillman
wesbillman merged commit 77493aa into main Mar 25, 2026
8 checks passed
@wesbillman
wesbillman deleted the simplify-release branch March 25, 2026 22:29
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
tlongwell-block added a commit that referenced this pull request Mar 26, 2026
…imeout

* origin/main:
  Fix desktop release updater signing flow (#187)
  Set the desktop release relay default (#186)
  Simplify desktop release to tag-and-push (#185)
  fix(desktop): align DM close button and unread indicator hover states (#184)
  fix(desktop): refresh DM sidebar in real-time when new messages arrive (#183)
  feat(desktop): add message editing support (#182)
  fix(desktop): ensure all agent dialogs scroll content and keep footer visible (#181)
BradGroux pushed a commit to BradGroux/buzz that referenced this pull request Aug 23, 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