docs/releasing.md
We use a unified semver versioning scheme for monthly releases: (YYYY-2000).M.patchlevel
X.M.patchlevel where X = year - 2000, M = month (1-12, no leading zeros)26.4.0 represents April 2026, first releasev (e.g., v26.4.0)26.4.0)Previous scheme (ended 2025): Traditional semantic versioning (v6.0, v6.0.1, v6.0.2, etc.)
New scheme (started 2026): Monthly date-based versioning with automated releases
Git tags: vX.M.patchlevel where X = year - 2000, M = 1-12
npm packages: X.M.patchlevel (same as git tag without the v prefix)
Git tags and npm versions for the same release:
v26.4.0, npm 26.4.0v26.4.1, npm 26.4.1v26.5.0, npm 26.5.0v27.1.0, npm 27.1.0Pull request titles must follow Conventional Commits format with types: feat, fix, docs, style, refactor, perf, test, ci, chore, build. This is validated in CI and helps organize the commit history.
Breaking changes should be indicated with the ! suffix in the PR title (e.g., feat!: remove deprecated API) so they are called out in release notes.
master branch is for development and should always be greenReleases are created automatically every month on a scheduled basis:
(YYYY-2000).M.patchlevel with M = 1-12 (no leading zeros)package.json and package-lock.json versions are updatedv26.4.0)26.4.0 without v prefix)You can also trigger a release manually on any branch:
master)X.M.patchlevel with M = 1-12, e.g., 26.4.0)This is useful for:
When releasing (automated or manual):
X.M.patchlevel with month 1-12, e.g., 26.4.0)No additional manual steps are required. The automated workflow handles:
package.jsonFor non-automated releases, monitor: