Skip to content

Document release process and add version guard test#13

Merged
vmariiechko merged 1 commit into
mainfrom
feature/release-process
Jun 6, 2026
Merged

Document release process and add version guard test#13
vmariiechko merged 1 commit into
mainfrom
feature/release-process

Conversation

@vmariiechko

Copy link
Copy Markdown
Owner

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: no template/ file changes, no asset changes, and _template_version is untouched, so generated bundles are byte-identical. Not a versioned release — the CHANGELOG.md entry 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.toml and the generated bundle's _template_version), puts the changelog finalization and version bump inside the PR before merge (so main is 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 finalized CHANGELOG.md version 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.md and AGENTS.md: clarified that changelog entries stay under [Unreleased] until a release finalizes them; added pointers to RELEASING.md; AGENTS.md gained a Release Process subsection.
  • CHANGELOG.md: entry under [Unreleased] documenting the above.

Change Area

  • Docs / tests / infrastructure only

Configuration Axes Affected

  • None of the above (docs, tests, infrastructure only)

Testing

  • All tests pass (pytest tests/ -V) — 2364 passed, 163 skipped (+4 new guard tests)
  • Manual template generation tested (N/A: no template changes)
  • New tests added for new functionality

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

  • Go template syntax is valid (no unclosed {{ }} blocks)
  • No .tmpl files appear in generated output
  • Generated YAML files are valid
  • Documentation updated (if behavior changed)

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.
@vmariiechko vmariiechko merged commit 4cf0734 into main Jun 6, 2026
1 check passed
@vmariiechko vmariiechko deleted the feature/release-process branch June 6, 2026 12:41
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