Release Process
How releases are created, versioned, and distributed.
Releases are fully automated via GitHub Actions. You do not need to manually bump version numbers or tag commits.
Automated flow
- Commits merged to
mainare analysed by release-please. release-pleaseopens (or updates) a Release PR that bumps the version inpackage.jsonand updatesCHANGELOG.md.- When the Release PR is merged, a GitHub release is created automatically.
- The release workflow compiles binaries for all platforms and:
- Attaches them to the GitHub release.
- Publishes the package to npm.
- Updates the Homebrew tap formula (if configured).
Version bumping rules
Versions follow Semantic Versioning:
| Commit type | Version bump |
|---|---|
fix, perf, refactor | Patch (0.0.x) |
feat | Minor (0.x.0) |
Any type with ! or BREAKING CHANGE footer | Major (x.0.0) |
Binary targets
Each release produces binaries for:
| Platform | Architecture |
|---|---|
| macOS | Apple Silicon (arm64) |
| macOS | Intel (x64) |
| Linux | x86_64 |
| Linux | ARM64 |
| Windows | x86_64 |
Required GitHub secrets
| Secret | Purpose |
|---|---|
NPM_TOKEN | Automation token from npmjs.com for publishing |
Manual emergency release
If automation is unavailable:
npm version patch # or minor / major
git commit -m "chore(release): v$(node -p 'require(\"./package.json\").version')"
git tag "v$(node -p 'require(\"./package.json\").version')"
git push origin main --tagsHomebrew tap
To enable automatic Homebrew updates, create a homebrew-tap repository under your GitHub organisation. The release workflow will push updated formula files to it automatically.