Skip to content

Release xBot 2.0.0, and publish xBot.dmg on every version bump - #47

Open
MasterYoav wants to merge 7 commits into
masterfrom
release-on-version
Open

MasterYoav wants to merge 7 commits into
masterfrom
release-on-version

Conversation

@MasterYoav

Copy link
Copy Markdown
Owner

Merging this publishes xBot 2.0.0 to GitHub Releases. Merge it after #45 and #46 so 2.0.0 includes Jev.

  • VERSION (2.0.0) is the marketing version; bundle-mac-app.sh stamps it when XBOT_VERSION isn't set.
  • Mac release now runs on a push to master that changes VERSION (or the workflow), on a pushed v* tag, and by hand. A quick Ubuntu job resolves the version (input → tag → VERSION) and skips — saying why — when that release already exists, so other pushes never rebuild.
  • Publishing needs every signing, notarization and Sparkle secret, and is refused otherwise (never an unsigned DMG). The spctl/stapler checks stay; two runs for one version queue rather than race.
  • A full latest release (pre-release only for versions with -), with xBot.dmg (stable name: releases/latest/download/xBot.dmg is always the newest), xBot-<version>.dmg and appcast.xml.
  • README and website: Download for Mac → releases/latest/download/xBot.dmg.
  • Docs: releasing = bump VERSION in a PR (packaging, checklist, CLAUDE.md, CHANGELOG 2.0.0 — the redesign); roadmap updated for the merged stack.

Known: a downloaded Developer ID build has no iCloud entitlement yet, so it reaches the phone on the same network only. 1.0.0 installs on macOS 26 will be offered 2.0 by Sparkle.

The marketing version now lives in one file at the repository root. XBOT_VERSION still wins, so
local installs that pass 2.0.0-dev keep doing so; 2.0.0-dev remains the fallback without VERSION.
Triggers on a push to master that changes VERSION (or this workflow), on a pushed v* tag, and by
hand. A resolve job picks the version (input, then tag, then VERSION), checks it is semver, and
skips publishing when release v<version> already exists, when build_only is ticked, or when a
manual run is on a branch other than master. Publishing requires every signing, notarization and
Sparkle secret up front, keeps the spctl/stapler verification, and creates a full latest release
(pre-release only for a '-' version or the input) with xBot.dmg, xBot-<version>.dmg and
appcast.xml. Runs for one version are serialised and never cancelled mid-publish.
The button links releases/latest/download/xBot.dmg, which always serves the newest full release;
building from source becomes the secondary link. The Status no longer says there is no signed
download, and both say plainly that the downloaded build reaches the phone on the same network
only until a Developer ID build carries the iCloud entitlement.
Packaging gains a Releasing section (resolve and build jobs, the skip rules, the assets, manual
runs and tags); the launch checklist does steps 2–7 before merging the release PR, whose merge
publishes 2.0.0; scripts/README-packaging, the roadmap and the iPhone doc follow, including that a
Developer ID download reaches the phone on the same network only.

This branch has not been deployed

No deployments
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