-
Notifications
You must be signed in to change notification settings - Fork 7
Description
Updated 2026-02-14: Aligned with actual design and implementation (PR #67 in tooling). Original description was based on the early concept from PR #338.
Problem description
After a release snapshot is prepared and reviewed, several manual steps remain: finalizing metadata, creating tags, publishing GitHub releases, and syncing artifacts back to main. These operations need automation.
Part of #191 (Develop automation support in support of release management). Part of #379 (Integration and roll-out of Release Automation).
Implemented solution
C3: Release Finalization and Publication
After the Release Preparation PR is merged (snapshot state becomes DRAFT_READY with a draft GitHub Release), the release manager triggers publication with /publish-release --confirm <tag>.
Steps:
- Metadata finalization: Sets
release_dateinrelease-metadata.yaml, commits to snapshot branch - Git tag creation: Creates annotated tag
rX.Ypointing to the finalization commit - GitHub Release publication: Transitions draft release to published, includes
release-metadata.yamland CHANGELOG content - Reference tag creation: Creates
src/rX.Ytag on main at the branch point (marks commit for potential maintenance branch creation) - Branch cleanup: Deletes snapshot and release-review branches
C4: Post-Release Sync
Triggered automatically after publication:
- Sync PR creation: Creates
post-release/rX.Ybranch from main (not from the release branch) - Selective sync (does NOT sync version fields — main stays in "wip" state):
- Copies
CHANGELOG/CHANGELOG-rX.mdfrom the snapshot branch - Updates README "Release Information" section between delimiters with release metadata and links
- Copies
- PR for review: Creates PR to main with
post-releaseandautomatedlabels, requires manual approval
Release Issue Closure
Auto-closes the Release Issue and updates state to PUBLISHED.
Key design decisions
- Two-phase publish: PR merge creates a draft release; publication requires an explicit command. This gives release managers a final checkpoint.
- Immutable snapshots: Snapshot branches are not modified after creation (review changes go on the review branch). This prevents drift during the review period.
- Selective sync: Post-release PR copies only documentation artifacts (CHANGELOG, README). API version fields stay as "wip" on main to avoid disrupting ongoing development.
Deferred
- OpenAPI
$refbundling (see Commonalities#577) - Maintenance branch workflow (C5, tracked in Implement Maintenance Branch Releases (C5 Workflow) #356)
Status
Implemented and tested. See tooling#69 (closed).