Repository navigation
The bump PR's summary heads the GitHub Release page - #172
Merged
Merged
Conversation
scripts/release-notes.sh builds the Release body: the summary section of the PR merged as the tag's commit, then GitHub's generated notes, then dist's install instructions. Without such a PR or summary, the body is as before. release-notes.yml now checks out the tag and runs it. The fake gh answers the commit-to-PRs endpoint so the script is tested as a black box. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The release-notes job's token has only contents: write, so a PR read may be refused. Rather than failing and leaving dist's body, warn and build the body without a summary. Also point each script's marker comments at the other. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps both sides: main's pre-flight refusals (#157) alongside this branch's release body built from the bump PR's summary. In the README the refusal paragraph sits before the release workflow paragraph, which keeps this branch's description of the body; in tests/release.rs both sets of tests are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Merged
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
The published GitHub Release now opens with the bump PR's summary.
release-notes.ymlchecks out the tag and runs a new script,scripts/release-notes.sh <tag> <install notes>, which builds the body:The fake
ghnow answersrepos/<repo>/commits/<sha>/pulls, returning the PRs merged as<sha>and those whose head is<sha>, as GitHub does. Its generate-notes no longer needstarget_commitish.release.yml, whichdistgenerates, is untouched.Evidence
tests/release.rsfailed becausescripts/release-notes.shdid not exist.After:
cargo testpasses, including these tests of the script as a black box:cargo clippy --all-targetsandshellcheck scripts/*.share clean.Merge Danger
Door: two-way
Revert the workflow and the script to go back to generated notes only.
Blast Radius: Release-page
Only the Release body changes, and only after the Release is published. The binaries, the installer, the smoke checks and the crates.io publish are unaffected. If the job fails outright, the Release keeps dist's body. It could fail only if the tag checkout or the generate-notes call fails, which is the same risk as before, plus the checkout.
Unaddressed findings
Standards
release.shandrelease-notes.sh. Skipped: the two calls take different arguments (a target and previous tag, against the tag alone), so a shared helper would only hide that difference.gh'scommit_prsrepeatspr_view's head-OID lookup. Skipped: they fail differently on purpose.pr_viewfails loudly on a missing branch, while the commit lookup has to skip PRs whose branch is gone, as GitHub does.Spec
contents: writeonly, set in the generatedrelease.yml) can read PRs. Not fixable here, becauserelease.ymlmust not be edited. The script now falls back with a warning, so a refusal costs only the summary.claudefails,release.sh's fallback summary is GitHub's generated notes, so the Release shows that list twice. Skipped: The bump PR's summary heads the GitHub Release page #161 doesn't cover this case, andrelease.shalready tells the maintainer to edit the PR body.Closes #161
🤖 Generated with Claude Code