Since Homebrew 1.0.0 most Homebrew users (those who haven’t run a
dev-cmd or set
HOMEBREW_DEVELOPER=1) require tags on the Homebrew/brew repository in order to get new versions of Homebrew. There are a few steps in making a new Homebrew release:
- Check the Homebrew/brew pull requests, issues, Homebrew/core issues and Homebrew/discussions (forum) to see if there is anything pressing that needs to be fixed or merged before the next release. If so, fix and merge these changes.
- After no code changes have happened for at least a couple of hours (ideally 24 hours) and you are confident there’s no major regressions on the current
master branch you can create a new Git tag. Ideally this should be signed with your GPG key. This can then be pushed to GitHub.
brew release-notes --markdown $PREVIOUS_TAG to generate the release notes for the release.
Create a new release on GitHub based on the new tag.
You can watch a video of the above process on YouTube
If this is a major or minor release (e.g. X.0.0 or X.Y.0) then there are a few more steps:
- Before creating the tag you should delete any
odisabled code, make any
odisabled and add any new
odeprecations that are desired.
- Write up a release notes blog post to https://brew.sh e.g. brew.sh#319. This should use
brew release-notes as input but have the wording adjusted to be more human readable and explain not just what has changed but why.
- When the release has shipped and the blog post has been merged, tweet the blog post as the @MacHomebrew Twitter account or tweet it yourself and retweet it with the @MacHomebrew Twitter account (credentials are in 1Password).
- Send the email to the Homebrew TinyLetter email list (credentials are in 1Password).
- Consider whether to submit it to other sources e.g. Hacker News, Reddit.
- Pros: gets a wider reach and user feedback
- Cons: negative comments are common and people take this as a chance to complain about Homebrew (regardless of their usage)