From 129be7ef9d5e7a80d397cba77c769c77eb5e6582 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Sun, 5 Jul 2026 17:28:08 -0500 Subject: [PATCH] fix(release): idempotent changelog promote + dedupe 02.56.11 header Guard the promote so it only inserts a version header when absent (stops the empty duplicate headers each build was appending), and remove the duplicate 02.56.11 header the non-idempotent promote just created. Claude-Session: https://claude.ai/code/session_01WbGBN9VyRK61zczYWcCQ2i --- .mokogitea/workflows/auto-release.yml | 11 +++++++---- CHANGELOG.md | 3 ++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.mokogitea/workflows/auto-release.yml b/.mokogitea/workflows/auto-release.yml index 1bb92072..f2063cbd 100644 --- a/.mokogitea/workflows/auto-release.yml +++ b/.mokogitea/workflows/auto-release.yml @@ -380,10 +380,13 @@ jobs: import sys version, date = sys.argv[1], sys.argv[2] content = open('CHANGELOG.md').read() - old = '## [Unreleased]' - new = f'## [Unreleased]\n\n## [{version}] --- {date}' - content = content.replace(old, new, 1) - open('CHANGELOG.md', 'w').write(content) + marker = f'## [{version}]' + # Idempotent: only promote when this version header isn't already present, + # otherwise re-runs (or same-version builds) create empty duplicate headers. + if marker not in content: + new = f'## [Unreleased]\n\n{marker} --- {date}' + content = content.replace('## [Unreleased]', new, 1) + open('CHANGELOG.md', 'w').write(content) " "$VERSION" "$DATE" git add CHANGELOG.md git commit -m "chore: promote changelog [Unreleased] → [${VERSION}]" || true diff --git a/CHANGELOG.md b/CHANGELOG.md index d262fb2d..749b8933 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Changelog ## [Unreleased] -## [02.56.11] --- 2026-07-05 +### Fixed +- Release automation: the changelog-promote step is now idempotent — it only inserts a `## [version]` header when that version isn't already present, preventing the empty, duplicated version headers that repeated/same-version builds were producing. (workflow) ## [02.56.11] --- 2026-07-05 -- 2.52.0