Skip to content

Branching Strategy

BranchPurposeDeploys
mainStable releasesPublishes to public npm + updates Homebrew tap
releaseRelease candidatesPublishes RC to GitHub Packages (internal testing)
feat/*New features
fix/*Bug fixes
chore/*Maintenance, tooling, docs
feat/my-feature ──→ main ──→ publish stable (npm + Homebrew)
└──→ release ──→ publish RC (GitHub Packages)
  1. Create a feature branch from main (e.g. feat/add-retry-logic)
  2. Make changes, commit, push
  3. Open a PR targeting main
  4. After review and merge, publish.yml publishes a stable release to public npm and syncs the Homebrew tap
  5. For release candidates, merge main into release to trigger rc.yml, which publishes to GitHub Packages with the rc dist-tag
  • Keep PRs focused on a single concern
  • Branch names should use the feat/, fix/, or chore/ prefix
  • Commit messages should be descriptive of the change