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.
  • Sync uv.lock with the 0.1.1 version already in pyproject.toml.

Why

GitHub releases were empty — clicking on a release showed no description. The changelog content should appear automatically.

How to test

  1. Verify the script works locally: .ci/changelog-notes 0.1.1 and .ci/changelog-notes 0.1.0.
  2. Check error handling: .ci/changelog-notes 9.9.9 exits with code 1.
  3. After merge, create a test pre-release (gh release create test-0.0.0 --prerelease --target main --title test) and verify the release-notes job runs and populates the body. Then delete it.

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 visibly without affecting PyPI publish (independent job).

Changelog fragment

No — internal CI tooling, not user-facing.

sderev and others added 2 commits February 9, 2026 04:18
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>
Co-authored-by: AI <ai@sderev.com>
@sderev sderev merged commit 1da7673 into main Feb 9, 2026
6 checks passed
@sderev sderev deleted the release-notes branch February 9, 2026 03:42
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