Release Notes
Commit-driven changelog and release notes powered by semantic-release. package.json version is the source of truth—semantic-release updates it on each release; do not edit it manually.
Canonical release flow
- Merge conventional-commit PRs into
main. - CI passes, then the
Releaseworkflow runs semantic-release. - semantic-release computes the next semver version from commit history.
- semantic-release updates
package.json,docs/releases/CHANGELOG.md, andpnpm-lock.yaml, commits them, tags the release, and publishes a GitHub Release. - The docs site publishes the latest release notes content from this folder.
First release (no prior tags)
When there are no existing version tags, semantic-release analyzes all commits on main to compute the first version (e.g. 1.0.0 for a feat:).
Steps:
- Ensure
mainhas at least one release-worthy commit (feat:,fix:, orperf:). - CI must pass on
main. - The
Releaseworkflow runs automatically after CI succeeds. Or trigger manually: Actions → Release → Run workflow. - semantic-release will update
package.json, writeCHANGELOG.md, commit, tag (e.g.v1.0.0), and create a GitHub Release.
Preview first: Run pnpm release:dry locally (with GH_TOKEN set) to see the computed version and notes before the workflow runs.
Merge and commit requirements
- Keep merge commits/squash titles in conventional commit format so semantic-release can analyze them.
- Prefer
feat,fix, andperffor release-triggering changes. - Use
BREAKING CHANGE:footer (ortype!:) for major releases.
Conventional commit to semver mapping
feat:-> minor bumpfix:/perf:-> patch bumpBREAKING CHANGEfooter or!after type -> major bump- other types (
docs:,chore:, etc.) -> no release by default
Troubleshooting
No release was created
This usually means no new commits matched release-triggering types (feat, fix, perf, or breaking changes) since the last tag.
Run:
pnpm release:dry
and verify semantic-release logs show a computed release type.
Release workflow failed
Common causes:
- Missing/invalid release token permissions.
- Non-conventional merge commit title.
- Protected branch settings blocking semantic-release git/changelog commit.
Recovery checklist:
- Re-run
pnpm release:drylocally withGH_TOKEN/GITHUB_TOKENset. - Fix commit title format (or add a follow-up conventional commit) and merge again.
- Verify workflow token can write
contentsand create releases.