| title | Release process |
|---|
AzureLocal/platform uses release-please to automate versioning and tag creation based on Conventional Commits.
PR merged → release-please parses log → release PR opened/updated → merge → tag + GitHub Release
No one hand-edits CHANGELOG.md or creates tags manually. Every step after a PR is merged is automated.
release-please decides the bump from commit types:
| Commit type | Bump |
|---|---|
fix:, perf: |
patch (0.2.0 → 0.2.1) |
feat: |
minor (0.2.0 → 0.3.0) |
feat!: or BREAKING CHANGE: footer |
major (0.2.0 → 1.0.0) |
docs:, chore:, ci:, test:, refactor: |
no bump (but still appears in log) |
azurelocal-platform-v<MAJOR>.<MINOR>.<PATCH>
Consumers pin to the short major tag (v1, v2) — not the full tag. See workflow versioning.
-
Land all the PRs you want in the release (squash-merged to
main). -
Check the open release-please PR — confirm the proposed version and changelog entries look right.
-
Merge the release PR.
-
release-please creates the git tag and GitHub Release automatically.
-
Update the short major tag to point at the new release:
git fetch origin --tags git tag -f v<MAJOR> azurelocal-platform-v<MAJOR>.<MINOR>.<PATCH> git push origin -f v<MAJOR>
This step moves
v1(orv2, etc.) forward so existing consumer pins pick up the new patch/minor. Only do this when the release is backwards-compatible with the major.
While platform is pre-stable (v0.x.x), consumers reference @main — the @v1 pin rule activates at v1.0.0. See governance/versioning for the full policy.
| File | What |
|---|---|
CHANGELOG.md |
Prepends a new ## [x.y.z] section |
release-please-config.json |
Untouched (config-only) |
.release-please-manifest.json |
Bumped to new version |
| Git tag | azurelocal-platform-v<x.y.z> |
| GitHub Release | Created with the changelog slice as the body |
| Symptom | Likely cause | Fix |
|---|---|---|
| No release PR opened | No qualifying commit since last release (all docs:/chore:) |
Land a feat: or fix: commit |
| Release PR shows wrong version bump | Commit type was wrong at merge | Don't try to rewrite — land a follow-up PR with the correct type |
| Tag missing after merge | Release-please workflow failed | Check .github/workflows/release-please.yml run; usually a permissions issue |