Release notes from a curated release_notes.md (with CHANGELOG fallback + cycle reset) #749
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Let releases pull their notes from a curated
release_notes.mdin the repo root, instead of always auto-extracting fromCHANGELOG.md.Current behavior
Release notes are extracted from the CHANGELOG
[Unreleased]section at release time:.mokogitea/workflows/pre-release.yml:209.mokogitea/workflows/auto-release.yml:163and:354version-set.ymlpromotes[Unreleased]→[version] --- dateon release;pr-check.yml:472enforces[Unreleased]has entries.Proposal
release_notes.mdexists and is non-empty, use its contents as the release body; otherwise fall back to the existing CHANGELOG[Unreleased]extract. This separates curated, user-facing release notes from the exhaustive technical changelog while keeping automatic notes when nobody curates.release_notes.mdat the start of a new cycle — whendevis recreated frommainafter a stable release — mirroring how[Unreleased]is promoted and re-emptied. So notes accumulate during a cycle and reset for the next.release_notes.mdlike the changelog for readiness checks (warn if it still has stale content post-release, etc.).Touchpoints
NOTES=$(awk … CHANGELOG.md)lines → wrap withif [ -s release_notes.md ]; then NOTES=$(cat release_notes.md); else NOTES=$(awk …); fi.: > release_notes.md(reset).release_notes.mdtemplate in the repo + templates.Notes
Related: #727 release flow, version-set/auto-release/pre-release workflows.
https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT
CI integration — required (promoting §3 from "optional")
The CI must treat
release_notes.mdas a first-class artifact, mirroring how it already handles the CHANGELOG:pr-check.yml(~line 472, where it counts[Unreleased]entries): accept either a curatedrelease_notes.mdentry or a CHANGELOG[Unreleased]entry so a PR isn't blocked when the notes live inrelease_notes.md; warn/fail only if both are empty. (Keeps the "notes required per release" guarantee without forcing double entry.)repo-health.yml: addrelease_notes.mdtoREPO_REQUIRED_ARTIFACTS(~line 48) and add content checks (~line 360) — e.g. warn on stale content lingering after a stable release, or a missing file — parallel to the existingCHANGELOG.mdchecks.: > release_notes.mdreset belongs in the dev-recreate / post-stable-release job (auto-release.ymlor the dev-recreate workflow), so a fresh cycle starts empty.Net: pr-check validates it, repo-health requires/tracks it, auto-release extracts + resets it. Still post-#733 — but the CI changes are part of the same unit of work.
https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT
Branch created:
feature/749-release-notes-from-a-curated-release-notClosing as misfiled / redundant. This is a release-workflow change that belongs in the workflow source repo, not here — the release workflows are synced from Template-Generic, so editing them in this fork would be overwritten.
Tracked for implementation in MokoConsulting/Template-Generic#71 (self-contained, with exact touchpoints). It'll sync down to all repos including this one.
https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT