Problem
#60 (closes #54) was meant to cut v0.3.0 using a Release-As: v0.3.0 footer in its squash body. It was merged with GitHub's default squash body, which in this repo is the commit list (squash_merge_commit_message: COMMIT_MESSAGES). That body has no footer, so the release pipeline correctly computed a patch and shipped v0.2.27. Run 37704069768 logs: Latest tag: v0.2.26; range: v0.2.26..HEAD, bump=patch, tag=v0.2.27.
Two consequences:
Proposed solution
Alternatives considered
- Switch the repo default to
PR_BODY. Rejected (maintainer decision). It changes every PR's commit body to the PR template, with its checkboxes and evidence. Documenting the step keeps the history as it is.
- Stay on v0.2.x. Rejected. The version line should reflect the breaking changes.
Problem
#60 (closes #54) was meant to cut v0.3.0 using a
Release-As: v0.3.0footer in its squash body. It was merged with GitHub's default squash body, which in this repo is the commit list (squash_merge_commit_message: COMMIT_MESSAGES). That body has no footer, so the release pipeline correctly computed a patch and shipped v0.2.27. Run37704069768logs:Latest tag: v0.2.26; range: v0.2.26..HEAD,bump=patch,tag=v0.2.27.Two consequences:
docs/release-versioning.mdsays Release pipeline always bumps patch; AGENTS.md claims versions derive from commit types #54 ships as v0.3.0.BREAKING CHANGE:/Release-As:must be added at merge time.Proposed solution
docs/release-versioning.md:gh pr merge <N> --squash --subject … --body-file <file>when footers matter.Release-As: v0.3.0. The pipeline then cuts v0.3.0, which is the version intended for the breaking changes that shipped as patches (feat!: dockerd-parity listening socket, Unix path only #47 in v0.2.22, Percent-encoded container names: Go routes on the decoded path, Rust/TS on the raw path #53 in v0.2.26).Alternatives considered
PR_BODY. Rejected (maintainer decision). It changes every PR's commit body to the PR template, with its checkboxes and evidence. Documenting the step keeps the history as it is.