Tiangong follows Semantic Versioning. Public APIs and product contracts use v0.y.z while they are stabilizing. Prereleases use -alpha.N, -beta.N, or -rc.N.
- Create
release/vX.Y.Zfromdevelop. - Allow only release blockers, documentation, versioning, and generated release metadata on the release branch.
- Run required build, test, security, license, reproducibility, and clean-environment checks.
- Prepare release notes and record compatibility or migration changes.
- Merge the release pull request into
mainafter all required checks and reviews pass. - Create an immutable annotated
vX.Y.Ztag from the merge commit and publish a GitHub Release. - Publish immutable package/image digests, checksums, SBOM, provenance, and known limitations when those artifacts exist.
- Merge the released state back into
developthrough a pull request.
Never move or reuse a published tag. Do not create a release tag merely for project initialization.
Urgent released-version fixes use hotfix/vX.Y.Z-<slug> from main and merge back into both main and develop by pull request.