Document release process and add version guard test#13
Merged
Conversation
Add RELEASING.md as the canonical release checklist: the two version markers (pyproject.toml and the generated bundle's _template_version), the in-PR changelog finalization, the post-merge tag and release steps, and a release-notes template. Add tests/test_release_metadata.py to enforce that the two version markers and the latest finalized CHANGELOG.md version agree, so a partial or forgotten version bump fails CI before merge. Surface release facts in the PR template, and fix the changelog convention wording in CONTRIBUTING.md and AGENTS.md to spell out the [Unreleased] -> [X.Y.Z] close-out step.
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.
Related Issue
N/A
Summary
Documents the release process and adds a CI guard so the recurring release mistakes (wrong step order, forgotten version bump / date, changelog entries stranded under
[Unreleased], no release-notes template) stop happening. This is repo-internal tooling and documentation only: notemplate/file changes, no asset changes, and_template_versionis untouched, so generated bundles are byte-identical. Not a versioned release — theCHANGELOG.mdentry stays under[Unreleased]and will be finalized with the next real release.Changes
RELEASING.md(new): canonical release checklist. Names the two version markers (pyproject.tomland the generated bundle's_template_version), puts the changelog finalization and version bump inside the PR before merge (somainis always release-ready), keeps the annotated tag and GitHub release after merge, and ships a fill-in release-notes template mirroring v1.7.0/v1.8.0.tests/test_release_metadata.py(new): version guard. Asserts both version markers and the latest finalizedCHANGELOG.mdversion agree, and that an[Unreleased]section always exists. Runs in the existing CI on every PR. No hardcoded version, so no upkeep..github/PULL_REQUEST_TEMPLATE.md: optional "Release" block surfacing the changelog-finalized + markers-bumped + guard-passes checks.CONTRIBUTING.mdandAGENTS.md: clarified that changelog entries stay under[Unreleased]until a release finalizes them; added pointers toRELEASING.md;AGENTS.mdgained a Release Process subsection.CHANGELOG.md: entry under[Unreleased]documenting the above.Change Area
Configuration Axes Affected
Testing
pytest tests/ -V) — 2364 passed, 163 skipped (+4 new guard tests)Release (if this PR cuts a release)
N/A. This PR does not bump the version; changes ride under
[Unreleased]until the next versioned release.Checklist
{{ }}blocks).tmplfiles appear in generated output