Skip to content

ci: create the GitHub release from the CHANGELOG section on tag push - #1

Merged
lroolle merged 1 commit into
mainfrom
ci/release-from-changelog
Sep 2, 2026
Merged

ci: create the GitHub release from the CHANGELOG section on tag push#1
lroolle merged 1 commit into
mainfrom
ci/release-from-changelog

Conversation

@lroolle

@lroolle lroolle commented Sep 2, 2026

Copy link
Copy Markdown
Member

Why

On 2026-09-01 v0.4.0 through v0.7.0 went to PyPI and the repo page still said Latest: v0.3.1. A tag without a release is the "does anyone maintain this?" signal, and the notes were already written, in CHANGELOG.md.

I backfilled the four missing releases by hand from their CHANGELOG sections (same source the v0.3.1 release body came from). This workflow makes that the default for the next tag.

What it does

On push of a v* tag: awk out the ## <tag> ... section of CHANGELOG.md, title from the heading with the trailing date stripped, body from the section, gh release create --verify-tag. If the section is missing the run fails with a pointer, instead of publishing an empty release.

Tested the extraction locally against the current file: v0.7.0 -> title v0.7.0 — a guess may not delete a window, 16 body lines; v0.3.1 -> title v0.3.1, 27 lines; a tag with no section fails.

Nothing else changes: PyPI stays manual, check is untouched.

Four tags shipped to PyPI on 2026-09-01 while the repo page still said
Latest v0.3.1. The notes already live in CHANGELOG.md; this derives the
release from them (title from the heading, body from the section) so a
tag is never silently unreleased, and fails the run if the section is
missing rather than publish an empty release.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@lroolle
lroolle merged commit db9b1f3 into main Sep 2, 2026
2 checks passed
@lroolle
lroolle deleted the ci/release-from-changelog branch September 2, 2026 08:47
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