We use SemVer with Conventional Commits to infer versions. Defaults:
feat: MINORfix,perf: PATCH!orBREAKING CHANGE:footer: MAJOR
Examples:
feat(chart): add traefik dependency→ minorfix(controller): prevent nil pointer→ patchfeat(api)!: drop deprecated fieldor footer → major (pre-1.0 → MINOR thanks to config)
.release-please-config.jsonsets"bump-minor-pre-major": true; BREAKING changes while<1.0.0increment MINOR instead of MAJOR.
- First release uses
bootstrap-sha(root commit) and/orRelease-Asto seed the baseline if no prior tag exists.
- Add a commit message footer:
Release-As: vX.Y.Z
This forces the next release version regardless of conventional types.
Hotfixes:
- For urgent patches, open a PR to
mainwith afix:commit. - Release-please will produce a patch release.
Version embedding:
- Binary embeds version via
-ldflags "-X main.version=$(VERSION)". - Helm chart uses the same version as the tag.