Skip to content

ci(release): reuse the promoted prerelease's release notes preview - #4754

Merged
matthewgrossman merged 3 commits into
mainfrom
ci/4753-reuse-release-notes/matthewgrossman
Oct 20, 2026
Merged

matthewgrossman merged 3 commits into
mainfrom
ci/4753-reuse-release-notes/matthewgrossman

Conversation

@matthewgrossman

@matthewgrossman matthewgrossman commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Summary

Stable releases now publish the release notes preview from the promoted pre-release, retagged to the stable version, so the notes reviewed before release are the notes that ship. When the preview is missing or expired, Release generates notes as before.

Related Issue

Closes #4753

Changes

  • select-release-candidate.py also returns qualification_run_id, the Pre-release run it already selects.
  • Select Qualified Prerelease downloads that run's release-notes artifact with gh run download, replaces the pre-release tag with the stable tag, and uploads it as this run's release-notes artifact. Its summary says whether notes were reused or will be regenerated.
  • release.yml passes the result to release-publish.yml as the internal release-notes-reused call input (not a dispatch input), which skips Write Release Notes when true. Pre-release and notes-only previews are unchanged.
  • Updated CI.md and the watch-github-actions skill.

Follow-ups:

  • The release-captain skill (on another unmerged branch) should describe the reuse once both land.
  • If PR Release Notes sections change after the preview, the captain can cut a new pre-release or edit the published release. A regenerate-notes dispatch input could be added later if that becomes common.

Release Notes

Testing

  • actionlint -shellcheck= -pyflakes= on release.yml and release-publish.yml: the only error is the existing concurrency.queue key, also reported on main.
  • zizmor --offline: same findings as main (12 low, 1 informational, 17 suppressed).
  • shellcheck on the extracted notes step.
  • Ran the notes step in an ubuntu:24.04 container (GNU sed) against the real v0.1.5-pre.7 preview from run 39423830966: only the heading and install command changed, to v0.1.5. A missing artifact leaves reused unset and writes the regeneration summary. pre.1 retagging leaves pre.10 untouched.
  • Confirmed gh run download exits non-zero for a missing artifact.
  • ruff check / ruff format --check on select-release-candidate.py (no existing tests for this script).
  • End-to-end Release run (not dispatched; it would publish a stable release).

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)

Stable releases now publish the selected prerelease's release-notes
artifact with the prerelease tag replaced by the stable tag. Release
falls back to generating notes when the preview is missing, expired, or
malformed, or when dispatched with regenerate-notes=true. The selection
script exposes the qualified Pre-release run ID for the download.

Closes #4753

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Oct 20, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@github-actions

Copy link
Copy Markdown

Download and retag the preview in Select Qualified Prerelease, which
already knows the qualified Pre-release run, instead of a separate job.
Drop the regenerate-notes input and preview format checks.

Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
Signed-off-by: Matthew Grossman <mgrossman@nvidia.com>
@matthewgrossman
matthewgrossman added this pull request to the merge queue Oct 20, 2026
Merged via the queue into main with commit 0f5b4f0 Oct 20, 2026
82 of 83 checks passed
@matthewgrossman
matthewgrossman deleted the ci/4753-reuse-release-notes/matthewgrossman branch October 20, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(release): reuse the promoted pre-release's release notes preview for stable releases

2 participants