BrewBar/RELEASING.md
maxsoch 73e0db3519 cask: document quarantine removal, --no-quarantine no longer exists
Recent Homebrew removed the --no-quarantine option entirely, so the
install docs and cask now instruct clearing the quarantine attribute
with xattr after install/upgrade. The cask prints it as a caveat at
install time.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 06:38:10 +02:00

2.6 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.1BrewBar-1.1.zip.

Release checklist

  1. Finish and merge the work. Tests green, app manually verified:

    xcodebuild -project BrewBar.xcodeproj -scheme BrewBar -configuration Debug -destination "platform=macOS" test
    
  2. Bump the version in Xcode (see above), commit.

  3. 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>.zip
    

    ditto (not zip) — it preserves code signatures and Finder metadata.

  4. Update the cask Casks/brewbar.rb: set version and paste the new sha256. Brew refuses any download whose hash doesn't match this value.

  5. Commit and push:

    git add Casks/brewbar.rb BrewBar.xcodeproj/project.pbxproj
    git commit -m "release <VERSION>"
    git push
    
  6. Create the Forgejo release: repo → Releases → New Release.

    • Tag: v<VERSION> (must match the cask URL), target main
    • Attach dist/BrewBar-<VERSION>.zip
    • Title: BrewBar <VERSION>; description: what changed since last release
  7. Upgrade on any machine:

    brew update && brew upgrade --cask brewbar
    

    (brew update pulls the tap, sees the new cask version, upgrade fetches the release zip.)

Notes

  • The app is signed with an Apple Development certificate, not notarized. Recent Homebrew removed the --no-quarantine option, 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/ and build/ 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