2.4 KiB
Releasing BrewBar
Version scheme
Semantic versioning, two or three numbers:
- 1.1, 1.2, … — new features (settings, new menu items, …)
- 1.0.1, 1.0.2, … — bug fixes only
- 2.0 — reserved for something that changes how the app fundamentally works
The version lives in MARKETING_VERSION in the Xcode project. Change it in
Xcode: target BrewBar → General → Version (this updates Debug and Release
together). The git tag and zip filename must match it exactly: version 1.1
→ tag v1.1 → BrewBar-1.1.zip.
Release checklist
-
Finish and merge the work. Tests green, app manually verified:
xcodebuild -project BrewBar.xcodeproj -scheme BrewBar -configuration Debug -destination "platform=macOS" test -
Bump the version in Xcode (see above), commit.
-
Build and package (from the project root):
xcodebuild -project BrewBar.xcodeproj -scheme BrewBar -configuration Release -destination "platform=macOS" build SYMROOT=build ditto -c -k --sequesterRsrc --keepParent build/Release/BrewBar.app dist/BrewBar-<VERSION>.zip shasum -a 256 dist/BrewBar-<VERSION>.zipditto(notzip) — it preserves code signatures and Finder metadata. -
Update the cask
Casks/brewbar.rb: setversionand paste the newsha256. Brew refuses any download whose hash doesn't match this value. -
Commit and push:
git add Casks/brewbar.rb BrewBar.xcodeproj/project.pbxproj git commit -m "release <VERSION>" git push -
Create the Forgejo release: repo → Releases → New Release.
- Tag:
v<VERSION>(must match the cask URL), targetmain - Attach
dist/BrewBar-<VERSION>.zip - Title:
BrewBar <VERSION>; description: what changed since last release
- Tag:
-
Upgrade on any machine:
brew update && brew upgrade --cask brewbar(
brew updatepulls the tap, sees the new cask version,upgradefetches the release zip.)
Notes
- The app is signed with an Apple Development certificate, not notarized.
Installs need
--no-quarantine; without it Gatekeeper blocks the app. dist/andbuild/are gitignored — release zips live only in Forgejo releases, never in git.- First install on a new machine:
brew tap maxsoch/brewbar https://forgejo.socheleau.fr/maxsoch/BrewBar.git brew install --cask --no-quarantine maxsoch/brewbar/brewbar