Repository navigation
Tie release notes, rules and CI to the changelog - #366
Merged
Merged
Conversation
Add each release's tag date to its heading, describe the Unreleased convention in the intro, and record the changelog mechanism.
scripts/changelog_section.py prints one release's section with its relative docs links made absolute, and --check gates a release. Tested on the real changelog (11 tests).
auto-tag.yml uses the release's changelog section as the notes, with generated PR notes appended. changelog.yml requires an entry for package-code PRs into dev (skip-changelog label to opt out) and the release section for PRs into main. Checked with actionlint.
v0.1.3, v0.2.0 and v0.3.2 carried their tagged commit's date; use the GitHub release date (or the tag date where no release exists), and state the convention in the rule.
The extractor skips code spans and fenced blocks, ignores headings inside fences, and rewrites reference-style link definitions. Seven edge-case tests (18 total) cover them.
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.
docs/changelog.mdhas covered every release since 0.1.0, but nothing around it used it.This PR connects the changelog to all three.
Changes
CHANGELOG.md: points todocs/changelog.mdand its published page.[project.urls]gains Documentation and Changelog, so PyPI links both.## X.Y.Z - YYYY-MM-DD, taken from the tag dates.scripts/changelog_section.py: prints one release's section with its relative docs links made absolute;--checkgates a release.pamica/tests/test_changelog.py(11 tests) run it on the real file and check the heading format and order.auto-tag.yml: publishes the release's section as the release notes, with GitHub's generated pull-request list appended. If the section is missing, it falls back to generated notes with a warning.changelog.yml:devthat changes package code (pamica/outside its tests,validate_implementations.py,pyproject.toml) must change the changelog, or carry the newskip-changeloglabel.mainmust carry its release's dated section and no## Unreleased..rules/changelog.md: records what an entry says, when to skip, and the release-prep steps (including a minor bump throughsync_version.py). It is referenced fromAGENTS.md, the review checklist, the CI rules and the git rules.Checks
pytest pamica/tests/test_changelog.py, ruff, ty and typos pass.mkdocs build --strictpasses, and the dated anchors render (for example#033-2026-09-01).actionlintreports nothing on the changed workflows.The earlier releases' notes are refreshed from the changelog after this merges. Editing a release fires only
edited, which neitherpublish.ymlnorrelease-binaries.ymllistens to.