This document describes how the CommitLabs frontend is versioned, how changelog entries are recorded, and how a release is cut. It is intentionally lightweight and meant to grow with the project.
The frontend follows Semantic Versioning,
MAJOR.MINOR.PATCH, tracked in the version field of package.json:
- MAJOR — incompatible, user-visible changes (e.g. a removed route, a breaking change to a persisted local format, or a required wallet/API change that invalidates existing sessions).
- MINOR — new functionality added in a backward-compatible way.
- PATCH — backward-compatible bug fixes and internal changes.
The project is currently pre-1.0 (0.x). While in 0.x, the public surface is
still stabilizing: minor bumps may include breaking changes, and patch bumps are
used for fixes. The first stable line is 1.0.0.
All notable changes are recorded in the root CHANGELOG.md,
using the Keep a Changelog format.
- Add a bullet to the
[Unreleased]section in the same PR as the change. - Put it under the right group:
Added,Changed,Deprecated,Removed,Fixed, orSecurity. - Write for a reader of the app, not the diff: describe the user-facing or contributor-facing effect, and link the PR or issue where useful.
- Skip purely internal noise (formatting, comment-only changes) unless it affects contributors.
A breaking change to a backend API that this frontend depends on is tracked
separately in docs/backend-changelog.md; link to that
entry from the CHANGELOG.md line when the two are related.
- Decide the next version from the nature of the
[Unreleased]entries (see Versioning). - In
CHANGELOG.md, rename[Unreleased]to the new version with today's date, e.g.## [0.2.0] - 2026-07-01, and add a fresh empty[Unreleased]section above it. - Update the comparison links at the bottom of
CHANGELOG.mdso[Unreleased]compares the new tag toHEADand the new version compares to the previous tag. - Bump
versioninpackage.jsonto match. - Merge the release PR, then tag the merge commit:
git tag -a v0.2.0 -m "v0.2.0" git push origin v0.2.0 - Create a GitHub Release from the tag, pasting that version's changelog section as the release notes.
-
[Unreleased]entry added in the same PR as the change. - Entry filed under the correct Keep-a-Changelog group.
- Related backend breaking change linked to
docs/backend-changelog.mdif any. - On release: version moved out of
[Unreleased],package.jsonbumped, tag pushed, GitHub Release created.