Skip to content

docs(changelog): roll shipped v0.16.2, v0.16.3, v0.16.4 out of Unreleased - #635

Merged
joshua-temple merged 1 commit into
mainfrom
fix/changelog-release-labeling
Jul 18, 2026
Merged

docs(changelog): roll shipped v0.16.2, v0.16.3, v0.16.4 out of Unreleased#635
joshua-temple merged 1 commit into
mainfrom
fix/changelog-release-labeling

Conversation

@joshua-temple

Copy link
Copy Markdown
Collaborator

Problem

CHANGELOG.md's newest rolled section was [0.16.1], but v0.16.2, v0.16.3, and v0.16.4 are all published (2026-07-17). Every shipped fix (reaper pagination, retries ladder, trunk_branch enforcement, and the rest) sat under ## [Unreleased], so a reader concluded the shipped work was unreleased. The preamble's claim that the file and the release notes tell the same story did not hold.

Root cause

No automated roll exists. The generate-changelog subcommand only builds git-derived release notes for the GitHub Release from a commit range; nothing rewrites CHANGELOG.md. The file is maintained by hand, and the roll from [Unreleased] into a versioned section was simply never done for the last three releases. The freshness guard (TestChangelog_UnreleasedCoversUserFacingCommits) only catches a lagging Unreleased, not an unrolled release, so the drift was invisible.

Fix

Manual roll. Each entry is attributed to the release that shipped it by the commit range that added it to the file (git diff v0.16.N v0.16.N+1 -- CHANGELOG.md), not by guesswork:

An automated roll (a release-time step that rewrites and commits CHANGELOG.md) is the true long-term fix but is a substantial, higher-risk release-workflow change; recommending it as a separate followup rather than bundling it here.

Verification

  • TestChangelog_UnreleasedCoversUserFacingCommits passes post-commit (the guard is inert until committed).
  • Whole-file bullet count conserved (248 before and after); every moved entry verified against its shipping release's commit range.
  • go build ./... and golangci-lint run ./... clean.

Not fleet-relevant: pure CHANGELOG roll, no generator, workflow, or release-path change.

…ased

The newest rolled section was 0.16.1 while v0.16.2, v0.16.3, and v0.16.4 are all published, so every shipped fix sat under Unreleased and read as unreleased. Each entry is moved into the version that shipped it, attributed by the commit range that added it to the file, with the genuinely unreleased entries left in place. Compare links and the preamble are updated to match.

Signed-off-by: Joshua Temple <joshua.temple@stablekernel.com>
@joshua-temple
joshua-temple merged commit 6d7a727 into main Jul 18, 2026
17 checks passed
@joshua-temple
joshua-temple deleted the fix/changelog-release-labeling branch July 18, 2026 09:42
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