Repository navigation
Collect release notes from fragments in a rolling draft pull request - #38
Merged
Merged
Conversation
Pull requests add a changelog.d/ fragment instead of editing CHANGELOG.md, and a workflow keeps one draft pull request with them collected, as in solprop. The tools and their tests are ported from solprop, relicensed MIT by their author. A new page documents the release; a test keeps CITATION.cff and the changelog's newest section in step; the changelog's counts move to a release step, since ordinary pull requests no longer edit it. CI reads the repository only, cancels superseded runs and pins its actions by commit, which matters most for release.yml's PyPI token. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
This was referenced Nov 4, 2026
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.
Second of three PRs bringing optmat up to solprop's standards. It's stacked on #9, so the diff here is this PR's alone; retarget it to
mainonce #9 merges.What changed
changelog.d/<slug>.<category>.mdinstead of editingCHANGELOG.md, so they stop colliding on it.poe changelog-checkjoins the gate, andpoe changelog-previewandpoe changelog-collectare new..github/workflows/release-notes.ymlkeeps one draft PR, Prepare the next release notes, with the fragments collected. It never force-pushes, merges, tags or publishes, and stops if the branch is edited by hand.tools/release_notes.py,tools/update_release_notes.pyand their tests. solprop's copies are GPL-3.0-or-later and these are MIT.git lognames John Travers as the only author of those files, so this rests on him relicensing his own code.docs/developers/releasing.md: new, since nothing documented a release before.tests/test_release_metadata.py: new.CITATION.cffmust match the changelog's newest section, and the citation,.zenodo.jsonandpyproject.tomlmust name the same authors.tests/test_counts.py: the check that the record counts appear inCHANGELOG.mdis removed, because it would fail on every data PR once ordinary PRs stop editing that file. README and overview stay tested, and stating the counts is now a release step.permissions: contents: read, cancellation of superseded runs, and actions pinned by commit inci.ymlandrelease.yml, which holds the PyPI token. Job names are unchanged because themainruleset requires them.Worth checking
checkoutv7.0.1,setup-uvv10.3.2,codecov-actionv7.1.1 (SHAs checked against their tags). That's newer than Dependabot's Bump the actions group across 1 directory with 3 updates #5 forsetup-uv(v7), and this replaces Bump the actions group across 1 directory with 3 updates #5.Needs doing by a maintainer: turn on Settings → Actions → General → Allow GitHub Actions to create and approve pull requests, which is off. Without it the workflow can't open the draft. My attempt to change it was refused by this tool's permission check.
Verified
poe check: passed, 21539 passed and 1 skipped, 100.00% coverage, docs built. Run before one later comment-only commit topyproject.toml.poe test-release: 5 passed, from a fresh worktree outside.claude/. In the.claude/worktree it failed, for a reason unrelated to this change: The sdist includes build output when built from a worktree under .claude/ #37.poe changelog-previewon this PR's fragment: correctUnreleasedsection, released history unchanged.Not verified until merge: the workflow itself, which runs only from
main. After merging and enabling the setting,gh workflow run release-notes.yml --ref mainshould produce the draft with this PR's fragment collected and removed.🤖 Generated with Claude Code