Skip to content

Release tooling: --yes flag, desktop- tag prefix, push-race fix#84

Open
bryanroscoe wants to merge 2 commits into
mainfrom
chore/release-non-interactive
Open

Release tooling: --yes flag, desktop- tag prefix, push-race fix#84
bryanroscoe wants to merge 2 commits into
mainfrom
chore/release-non-interactive

Conversation

@bryanroscoe

@bryanroscoe bryanroscoe commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Three release-pipeline changes (all touch the same release tooling):

1. release.sh --yes / -y — auto-confirms the three gates (dirty-tree, bump+tag, push) for non-interactive / CI / agent use. Piping yes is still blocked by the auto-mode classifier; the flag is the sanctioned path.

2. Tag prefix v2-desktop- — removes the v2-2.x redundancy. The prefix is just the release-track namespace (keeps the desktop app's tags separate from v1's PowerShell tags); everything human-facing now uses the bare semver:

  • Release title: Shield Optimizer 2.2.0 (was Shield Optimizer v2-2.1.0)
  • Homebrew cask version + changelog headings: ## 2.2.0
  • The workflow still triggers on and parses legacy v2-* tags / ## v2-X.Y.Z headings, so old tags can be re-run.
  • Auto-update is unaffected: the updater endpoint is a fixed raw.githubusercontent URL, independent of the tag name (verified).

3. Push-race fixmerge-updater and refresh-screenshots both commit to the default branch in parallel and neither rebased before pushing, so the second one lost with a non-fast-forward error (this is what failed the v2-2.1.0 gallery job). Both now rebase-and-retry before pushing.

Validated: YAML parses, release.sh syntax OK, and the changelog version-matching logic tested for both desktop- (bare-version heading) and legacy v2- (prefixed heading) tags. The desktop- prefix lives in one TAG_PREFIX constant in release.sh + the workflow trigger.

Skip the three confirmation gates with --yes/-y so the release can be cut
from CI or an agent without a TTY. Piping 'yes' is still blocked by the
auto-mode classifier; the flag is the sanctioned path.
- Tag prefix v2- -> desktop- (non-numeric, no longer doubles the semver).
  The workflow still accepts legacy v2-* tags. Everything human-facing now
  uses the bare semver: release title 'Shield Optimizer X.Y.Z', Homebrew
  version, and changelog headings (## X.Y.Z), with a fallback to the old
  prefixed heading for re-runs.
- Fix the non-fast-forward push race between merge-updater and
  refresh-screenshots (both commit to the default branch in parallel) with
  rebase-and-retry before push — this is what failed the v2-2.1.0 gallery job.
@bryanroscoe bryanroscoe changed the title release.sh: --yes for non-interactive runs Release tooling: --yes flag, desktop- tag prefix, push-race fix Jun 22, 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