Specify the changelog and release-notes mechanism #58
Notifications
Due Date
No due date set.
Blocks
Reference: xavierk/Fenris#58
Reference in New Issue
Block a user
Parent map: Chart Fenris dashboard clarity
Question
How do per-release Gitea notes carry instructions and bug-fix notes? Decide the CHANGELOG.md format (Keep a Changelog shape), how release.yml assembles the release body from the changelog section at tag time, and the discipline for bug-fix entries. Charting settled: CHANGELOG.md in the repo is the source of truth; the workflow mirrors it into the release body.
Resolution
Changelog + release-notes mechanism decided (Q1–Q14, grilling + domain-modeling):
Format (source of truth: CHANGELOG.md, repo root)
## [X.Y.Z] - YYYY-MM-DD(bracketed bare semver, strict ISO date).## [Unreleased]section always present at top, even empty.### Added,### Changed,### Fixedonly. Security fixes fold into Fixed.-bullet, imperative mood, user-facing phrasing; no commit hashes or issue numbers.Extraction (release.yml, tag time)
scripts/extract_changelog.py(checked in, unit-tested): args changelog path + version; slices that version's section verbatim; fails closed (::error::, nonzero exit) when section missing/empty or date malformed. Never reads Unreleased.v${version from pyproject.toml}(skipped on workflow_dispatch).Release body
packaging/release-footer.md(channel install one-liners, sha256sum -c SHA256SUMS.asc verify, rollback pointer). Footer is standing text; only changelog section varies.Discipline
Disposition: implements existing glossary Release (tag + packages + change notes together — current note-less releases violate it; mechanism closes that). No new glossary terms, no ADR (reversible). Execution is out of map scope; lands in docs/spec/dashboard-clarity.md at assembly (issue #60).