Repository navigation
ci(release): generate draft notes and open the post-release sync PR - #253
Merged
Merged
Conversation
- The Release workflow drafted every release with a placeholder body. It now renders the notes from the version's CHANGELOG section, with trust lines for the platforms actually built and the macOS notarization and Windows Authenticode state the secrets actually provided. - Publishing a release left the website on the previous CLI pin, so the release-event deploy failed until someone hand-wrote the sync PR. The new Post-release sync workflow regenerates the distribution manifests, pins the CLI recipes, refreshes the website release data and opens that PR, marked to merge only after npm is public. - PRs opened with GITHUB_TOKEN start no workflows, so the sync dispatches CI on its branch; ci.yml accepts workflow_dispatch for that. - RELEASE.md and the distribution runbook describe both steps; the runbook drops its version-specific examples.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two release chores were manual on every release and both bit during v1.6.0:
Draft notes.
release.ymlcreated the draft with a one-line placeholder, and the notes were written by hand at promotion time.scripts/release-notes.mjsnow renders them from the version's dated CHANGELOG section, in the format used for 1.5.1/1.6.0:Post-release website sync. After publication the release-event website deploy failed its recipe check, because the site still pinned the previous CLI, until a sync PR was written by hand (docs(website): sync published v1.5.1 surfaces #216, docs(website): sync published v1.6.0 surfaces #250). The new
Post-release syncworkflow (onrelease: published, plusworkflow_dispatch):SHA256SUMS.txt;scripts/pin-public-cli-version.mjs;sync:releaseandsync:content;release-sync/vX.Y.Zwith a body that says to merge only after npm is public.PRs created with
GITHUB_TOKENstart no workflows, so it dispatchesci.ymlon the branch;ci.ymlgainsworkflow_dispatchfor that (PR-only jobs skip under dispatch).The tag is validated (
^v\d+\.\d+\.\d+$, published, not draft) before any use. RELEASE.md and the distribution runbook describe both steps.Validation
tests/scripts/releaseNotes.test.ts(new, 8 tests): section extraction (dated only, empty, dot-not-wildcard, real 1.6.0 section), signed/unsigned trust lines, platform filtering, and recipe pin rewriting.node scripts/release-notes.mjs --tag v1.6.0 --mac-notarizedreproduces the structure of the hand-written 1.6.0 notes; an unknown tag fails with a clear message.unreleased.jsondrifted, from post-release commits.actionlinton ci/release/post-release-sync is clean;tests/docs+ distribution manifest tests: 220 passed; lint and knip clean.