Skip to content

Conversation

@sderev
Copy link
Owner

@sderev sderev commented Feb 9, 2026

What changed

  • Add .ci/changelog-notes Python script that extracts a version's section from CHANGELOG.md and converts RST underlined category headers to Markdown ###.
  • Add release-notes job to release.yml that runs on release: published, reads the changelog, and updates the release body via gh release edit.

Why

GitHub releases had empty descriptions. The changelog content should appear automatically when a release is published.

How to test

  • Verify the script locally: .ci/changelog-notes <version> (needs a CHANGELOG.md with scriv-formatted entries).
  • After merge, create a test pre-release and verify the release-notes job runs and populates the body.

Risk/compat notes

  • The release-notes job needs contents: write; scoped per-job, does not widen permissions for build or publish.
  • If a version is missing from CHANGELOG.md, the job fails without affecting PyPI publish (independent job).

Changelog fragment

No — internal CI tooling, not user-facing.

Add `.ci/changelog-notes` (Python) to extract a version's section from
`CHANGELOG.md`, converting RST underlined headers to Markdown `###`.

Add a `release-notes` job to `release.yml` that runs on `release:
published`, extracts the matching changelog section, and updates the
release body via `gh release edit`.  The job runs in parallel with the
existing build/publish pipeline and requires only `contents: write`.

Co-authored-by: AI <ai@sderev.com>
@sderev sderev merged commit 01e74df into main Feb 9, 2026
6 checks passed
@sderev sderev deleted the auto-release-notes branch February 9, 2026 03:32
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.

1 participant