OverflowBar uses semantic version tags and publishes installable DMGs through GitHub Releases. The DMG is the primary distribution path; the third-party Homebrew Cask mirrors the same versioned DMG and checksum as an alternative installation method.
- Patch release: focused compatibility, capture, activation, or packaging fixes
- Minor release: a user-visible capability or meaningful workflow improvement
- Major release: an incompatible preference, architecture, or product-direction change
There is no release solely to satisfy a calendar. Important fixes should be released promptly; routine improvements are grouped into coherent updates.
-
Update
CFBundleShortVersionStringandCFBundleVersioninOverflowBar/Resources/Info.plist. -
Update
Casks/overflowbar.rbwith the release version and the SHA-256 of the matching DMG. -
Move user-visible changes into
CHANGELOG.mdand updateRELEASE_NOTES.md. -
Build Debug and Release configurations.
-
Run live checks:
- arrow is present
- selected third-party items are managed
- protected system items remain visible
- second row opens and closes
- direct and temporary-reveal activation work
- Safe Reset and normal quit restore the layout
-
Build and verify the DMG:
./scripts/create-dmg.sh hdiutil verify dist/OverflowBar-<version>.dmg shasum -a 256 -c dist/OverflowBar-<version>.dmg.sha256
-
Validate the Homebrew Cask metadata:
bash scripts/validate-homebrew-cask.sh
-
Commit and push the release source.
-
Tag the exact release commit:
git tag v<version> git push origin v<version>
The tag triggers .github/workflows/release.yml, which validates version parity, builds the DMG, and creates the GitHub Release with the checksum attached.
scripts/create-dmg.sh uses DEVELOPER_ID_APPLICATION when provided. Without it, the script creates an ad-hoc signed community build. Notarization must be added before describing a release as Gatekeeper-ready.