This repository uses Semantic Versioning (SemVer): MAJOR.MINOR.PATCH.
- MAJOR: breaking API/behavior changes
- MINOR: backward-compatible features
- PATCH: backward-compatible fixes
mainis the integration branch and must stay green.- PRs merge into
mainafter passing quality gates. - Official releases are cut from
mainand taggedvX.Y.Z. - Hotfixes also merge via PR into
main, then receive a PATCH tag.
We intentionally keep a trunk-based workflow (no long-lived develop branch) to reduce merge drift.
- CI quality gate passes (lint/typecheck/tests/build)
- Security-sensitive changes reviewed
- API contract parity checks pass
- Release notes/changelog summary prepared
Create an annotated tag from main:
git checkout main
git pull --ff-only origin main
git tag -a vX.Y.Z -m "release: vX.Y.Z"
git push origin vX.Y.ZOn push to v*.*.*, GitHub Actions publishes container images and release artifacts.
- Any route removal or contract-breaking change must be documented in PR notes and release notes.
- Keep deprecation windows when practical (aliases/shims) before full removal.
- Include migration guidance for env vars, config paths, and API consumers.
- Version decision (major/minor/patch) agreed
-
maingreen and up to date - Breaking changes called out (if any)
- Upgrade notes written
- Tag
vX.Y.Zcreated and pushed - Container image availability verified (
ghcr.io/builderz-labs/mission-control)