This document describes how to create a new release and publish it to Homebrew.
- Ensure all changes are merged to
main - Update version in
Cargo.tomlworkspace section - Ensure CI passes on
main - Have the homebrew tap repo cloned at
~/GitHub/homebrew-invers
Edit Cargo.toml at the workspace root:
[workspace.package]
version = "X.Y.Z" # Update thisCommit the version bump:
git add Cargo.toml
git commit -m "chore: bump version to X.Y.Z"
git push origin maingit tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.ZThis triggers the release workflow which:
- Builds binaries for macOS (Intel + Apple Silicon) and Linux (x86_64)
- Creates a GitHub release with the binaries
- Generates SHA256 checksums for each binary
Monitor the Actions tab to ensure the release workflow completes successfully.
Once the release is published:
./scripts/update-formula.sh vX.Y.ZThis script will:
- Fetch SHA256 checksums from the GitHub release
- Update the formula in the homebrew-invers tap
- Commit and push the changes
If your tap repo is in a different location, set the environment variable:
TAP_REPO_PATH=/path/to/homebrew-invers ./scripts/update-formula.sh vX.Y.ZUsers can install invers with:
# Add the tap (first time only)
brew tap narrowstacks/invers
# Install
brew install invers
# Or install directly without adding tap
brew install narrowstacks/invers/inversWe follow Semantic Versioning:
- MAJOR (X.0.0): Breaking changes
- MINOR (0.X.0): New features, backwards compatible
- PATCH (0.0.X): Bug fixes, backwards compatible
Pre-release versions use suffixes: v0.1.0-alpha, v0.1.0-beta, v0.1.0-rc1
- narrowstacks/invers - Main project repository
- narrowstacks/homebrew-invers - Homebrew tap (contains only the formula)
- Check the Actions tab for error logs
- Common issues:
- Compilation errors on specific platforms
- Missing dependencies
- Fix the issue, delete the tag, and try again:
git tag -d vX.Y.Z git push origin :refs/tags/vX.Y.Z
- Ensure the release exists and all artifacts were uploaded
- Check that the tap repo is cloned:
ls ~/GitHub/homebrew-invers - Verify you have push access to the tap repo
- Verify the formula:
brew audit --strict narrowstacks/invers/invers - Test installation:
brew install --verbose narrowstacks/invers/invers - Check SHA256 hashes match the release artifacts