Skip to content

fix(changelog): merge the dual [Unreleased] sections into one at the top#6285

Merged
houko merged 1 commit into
mainfrom
fix/changelog-dual-unreleased
Jun 23, 2026
Merged

fix(changelog): merge the dual [Unreleased] sections into one at the top#6285
houko merged 1 commit into
mainfrom
fix/changelog-dual-unreleased

Conversation

@houko

@houko houko commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Problem

CHANGELOG.md on main has two ## [Unreleased] sections:

The buried block predates #6281; #6281's merge added the top duplicate. Because the release tooling reads only the first ## [Unreleased] and silently drops the rest (the pre-commit guard warns about exactly this), those ~150 entries were stranded and would never reach release notes. The duplicate header also fails the ## [Unreleased] guard, which blocks every CHANGELOG-touching commit made through the git hooks (this is what stalled #5988 / #5980).

This is the same class of breakage the repo has fixed before ("Merge dual [Unreleased] sections", #4240 / #2282).

Fix

Consolidate both blocks into a single ## [Unreleased] at the top:

  • Merge same-named ### subsections (collapsed 10 redundant subsection headers across Added/Changed/Fixed/Removed + the duplicate ## [Unreleased]).
  • Every bullet preserved verbatim. Verified: the multiset of all non-header content lines is byte-identical before/after (3320 lines each, empty diff) — nothing reworded, truncated, or lost.
  • Drop the two entries that are already published in released sections (so they are not re-announced next release): fix(installer): fall back to installable release, roll back bad upgrades #6272 (in [2026.6.22]) and fix(ci): pin vendored OpenSSL to Strawberry Perl on the Windows test lane #6171 (in [2026.6.17]). These were the only bullets whose canonical trailing (#NNNN) identifier also led a bullet in a released section; in-prose cross-references were excluded.

Net: one [Unreleased] at the top with 150 entries; released sections unchanged and correctly ordered.

Verification

Note for maintainer

The deeper cause — why a buried [Unreleased] accumulated ~150 unreleased entries while releases were still being cut from the top — is in the release tooling, not this file. Worth a look before the next release so entries stop getting stranded. This PR restores a correct, releasable CHANGELOG; it does not change the tooling.

CHANGELOG.md had two `## [Unreleased]` sections: one buried between released version sections (it predates #6281, which then added a duplicate at the top). The release tooling reads only the first [Unreleased] and silently drops the rest, so ~150 stranded entries were never reaching release notes; the duplicate header also tripped the `## [Unreleased]` guard, blocking every CHANGELOG-touching commit (e.g. #5988).

Consolidate both blocks into a single [Unreleased] at the top, merging same-named `###` subsections (collapsed 10 redundant subsection headers). Every bullet is preserved verbatim — verified that the multiset of non-header content lines is byte-identical before/after. Drop the two entries already published in released sections: #6272 (in [2026.6.22]) and #6171 (in [2026.6.17]).
@github-actions github-actions Bot added size/L 250-999 lines changed no-rust-required This task does not require Rust knowledge area/docs Documentation and guides and removed no-rust-required This task does not require Rust knowledge labels Jun 23, 2026
@houko
houko merged commit 06ace6c into main Jun 23, 2026
29 checks passed
@houko
houko deleted the fix/changelog-dual-unreleased branch June 23, 2026 05:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/docs Documentation and guides size/L 250-999 lines changed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant