Repository navigation
Preserve changelog release heading depth - #16
Merged
Merged
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
dblock
force-pushed
the
dblock/changelog-heading-depth
branch
from
November 7, 2026 23:16
2e13fdb to
58e6293
Compare
This branch was previously deployed
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.
Summary
Consumers should not have to normalize their changelog headings to use release automation. In ruby-link-checker #26, existing
###release headings were changed to##only to satisfy our parser.Recognize Markdown release headings at depths 1 through 6 in both Intridea and Keep a Changelog formats. Preserve the matched heading depth when dating a release and opening the next section, without extra configuration. Intridea sections include deeper subsection headings and end at the next heading of equal or shallower depth. Historical formatting remains unchanged; matching headings at different depths are still rejected when ambiguous. Code, HTML, and nested-block headings remain excluded.
Focused tests cover all heading depths, the star-placeholder Intridea format used by the consumer, deeper subsections and shallower section boundaries, and mixed-depth ambiguity. The local real consumer and installed-gem check keep the original
###format throughout the lifecycle; the actual reusable-workflow fixture now exercises third-level headings too.Validation
bundle exec rake: 111 examples and RuboCop passed.actionlint .github/workflows/*.yml examples/.github/workflows/*.ymlandbundle exec rake buildpassed. Installed the built gem in a temporary consumer and ran input configuration and all five lifecycle phases with###headings and a star placeholder, without remote writes.No release is dispatched by this PR. The consumer can remove its heading-normalization changes once it upgrades from
v0.1.0to a release containing this fix.Authored by an AI (GitHub Copilot) on behalf of @dblock.