Replace the premature 1.0 with 0.1 to signal beta status. Document the 0.x version scheme and the brew-never-downgrades caveat in RELEASING.md. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.9 KiB
Releasing BrewBar
Version scheme
Semantic versioning, two or three numbers. The app is currently in a 0.x pre-release phase:
- 0.1, 0.2, … — pre-release iterations; anything can change between them
- 0.1.1, 0.1.2, … — bug fixes only
- 1.0 — reserved for the first release considered stable and feature-complete
Note: Homebrew never downgrades. If a machine has a higher version installed
than the cask declares (e.g. after moving from 1.0 back to 0.1), run
brew reinstall --cask brewbar once instead of brew upgrade.
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.
Recent Homebrew removed the
--no-quarantineoption, so on any Mac that did not build the app, clear the quarantine flag after install/upgrade (the cask prints this reminder as a caveat):xattr -dr com.apple.quarantine /Applications/BrewBar.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 maxsoch/brewbar/brewbar xattr -dr com.apple.quarantine /Applications/BrewBar.app