Unify the RubyGems and Bundler changelogs - #9847
Open
hsbt wants to merge 5 commits into
Open
Conversation
hsbt
force-pushed
the
changelog-unification
branch
from
September 2, 2026 08:25
a05c61d to
916eae0
Compare
`bundle version` printed a date that spec/support/build_metadata.rb parsed back out of the top changelog header with a regex, which silently returned nil whenever the header format changed, as it did in 4.0.9. Extract the header rendering into ChangelogHeader so both the changelog cut and the build metadata produce the date from the same `.changelog.yml` template, and pass the stamp explicitly from the spec fixture instead of rewriting a changelog for it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
RubyGems and Bundler have been versioned in lockstep since 4.0.0 and ship as a single GitHub release, but the release tooling still cut two changelogs from two identical configs and cherry-picked both commits into master. Collapse `.changelog.yml` into one config where the `rubygems:` and `bundler:` labels map to the same sections, so a PR labelled for both libraries gets one entry and only labels pointing at different sections are rejected. The release task now makes one changelog commit and, for patch releases, regenerates the section on master from the same pull requests instead of cherry-picking, since the 4.0 branch keeps its per-library changelogs until it is EOL. Cutting keeps every released section in place, replaces the prerelease sections of a final release, and leaves out of a minor release the entries its previous line already shipped, with a note saying so. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Merge the 4.0.0 and later sections of CHANGELOG-bundler.md into the matching sections of CHANGELOG.md category by category, dropping the 11 entries whose pull request was already listed there. The pre-4.0 Bundler history, which used its own version numbers, moves verbatim to doc/CHANGELOG-bundler-2.x.md. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The per-library changelogs for the 4.0 branch were built lazily after the release branch checkout, so they read that branch's rubygems-only `.changelog.yml` and wrote an empty Bundler section. Build them with the rest of the release object so master's config is the one in effect. Also keep the already-released dedupe to minor and major releases, substitute changelog placeholders in one pass so titles containing backslashes or placeholders come through verbatim, refuse to prepare a release from a dirty tree or a stale local stable branch, return to the starting branch when the preparation finishes, skip the master changelog pull request when nothing changed, fail on a `gh` search error, and cover the layout choice with tests. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Describe the label rule the unified changelog enforces, the 4.0 branch that still keeps two changelogs, and the branches a dry run leaves behind, fix the stale label list and dead link the release guide pointed at, and make the changelog cross-links absolute so they resolve inside the gem and in rdoc. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
hsbt
force-pushed
the
changelog-unification
branch
from
September 3, 2026 07:39
916eae0 to
b0fcd41
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
RubyGems and Bundler now share a single
CHANGELOG.mdwith one set of sections per release.bundle versiontakes its date from the same.changelog.ymlheader template the changelog is cut from, instead of parsing it back out of the changelog header.I folded the 4.0.0 and later Bundler sections into the matching RubyGems sections category by category (20 sections, 175 entries, 11 duplicates dropped) and moved the older Bundler history verbatim to
doc/CHANGELOG-bundler-2.x.md. A PR labelled for both libraries yields one entry. Only labels mapping to different sections are rejected.The 4.0 branch keeps its two changelogs, so the release task still writes both there and regenerates the section on master from the same pull requests instead of cherry-picking. Cutting keeps every released section in place, replaces the prerelease sections of a final release, and leaves out entries already shipped by a lower line, with a note saying so. ruby/ruby's
sync_default_gems.rbneeds no change.🤖 Generated with Claude Code