Releases & Versioning¶
The project uses Semantic Versioning with Conventional Commits, automated by release-please.
How a release happens¶
flowchart LR
commit["Conventional commit (feat / fix)"] --> main[push to main]
main --> rp[release-please opens a release PR]
rp --> merge[merge the release PR]
merge --> tag[tag vX.Y.Z + GitHub Release]
tag --> pub["npm publish (if NPM_TOKEN set)"]
- Merge a
feat:orfix:commit intomain. - release-please opens a release PR that bumps the version and updates
CHANGELOG.md. - Merging that PR tags the release and publishes a GitHub Release with auto-generated notes.
Commit types¶
| Prefix | Bump | Example |
|---|---|---|
feat: |
minor (patch pre-1.0) | feat(cli): add summary command |
fix: |
patch | fix(core): handle empty feed |
docs: |
none | docs: clarify config |
chore: |
none | chore: bump deps |
CI¶
- ci — install, build, and typecheck on every PR and push.
- release — runs release-please; publishes to npm when an
NPM_TOKENsecret is present (skipped cleanly otherwise). - commitlint — validates commit messages on PRs.
Changelog¶
See the full history in CHANGELOG.md and the GitHub Releases.