Here's where we document how homebrew-cask is released.
We attempt to follow Semantic Versioning as much as possible.
Since we are still pre-1.0, this essentially means that we bump the PATCH number when we fix bugs, and we bump the MINOR number when we add stuff. Pretty simple.
We'll get this scripted someday, but until then it's better to have it written down then floating in a brain somewhere.
- Do a git log since the last release to see what changed. You can scope it to
lib
to just pick up code changes and filter out Casks noise. Like this:git log v0.25.0..HEAD lib
- Optionally run
developer/bin/project_stats <previous-release-tag>
for overall release stats. - Bump the version, which is stored in the file
lib/cask/version.rb
. Decide whether to bump minor or patch based on whether or not features were added. - Populate the CHANGELOG with a new section for the release you are creating. Follow the patterns used elsewhere in the file.
- Make a commit with CHANGELOG + version bump.
Like this:
git commit -m 'cut v0.26.0'
- Tag that commit, ensuring that you provide a message so we get an annotated
tag.
Like this:
git tag -m v0.26.0 v0.26.0
- Push the commit and the tag:
git push --follow-tags
- Hop to the GitHub project and click "Releases" then the link for your newly pushed tag. Click the "Edit Tag" button in the top right corner of that page.
- Paste the markdown summary from the CHANGELOG in the body of the release and click "Publish Release".
- Rejoice! Have a 🍪.
The way brew update
works, users will always be tracking HEAD
in their tap.
This means that the latest updates to Casks are going to trickle out
immediately after push. This means there are times when we need to be
thoughtful about how we push out new or breaking functionality. As a pre-1.0
project we can still break backwards compatibility, but sometimes there might
be decisions we can make about releasing to make things easier on our users.
In general: go easy on the users!