Auto-populate GitHub release notes from CHANGELOG.md
#23
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.
What changed
.ci/changelog-notesPython script that extracts a version's section fromCHANGELOG.mdand converts RST underlined category headers to Markdown###.release-notesjob torelease.ymlthat runs onrelease: published, reads the changelog, and updates the release body viagh release edit.uv.lockwith the 0.1.1 version already inpyproject.toml.Why
GitHub releases were empty — clicking on a release showed no description. The changelog content should appear automatically.
How to test
.ci/changelog-notes 0.1.1and.ci/changelog-notes 0.1.0..ci/changelog-notes 9.9.9exits with code 1.gh release create test-0.0.0 --prerelease --target main --title test) and verify therelease-notesjob runs and populates the body. Then delete it.Risk/compat notes
release-notesjob needscontents: write; scoped per-job, does not widen permissions forbuildorpublish.CHANGELOG.md, the job fails visibly without affecting PyPI publish (independent job).Changelog fragment
No — internal CI tooling, not user-facing.