Skip to content

DELIVERY: record the changelog assembler gate - #21

Open
arnelirobles wants to merge 1 commit into
mainfrom
chore/delivery-assembler-gate
Open

DELIVERY: record the changelog assembler gate#21
arnelirobles wants to merge 1 commit into
mainfrom
chore/delivery-assembler-gate

Conversation

@arnelirobles

@arnelirobles arnelirobles commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

One section, for the gate that came out of releasing barakoCMS 4.0.1.

scripts/changelog-assemble.sh folds one file per change into CHANGELOG.md's Unreleased section.
It found its ### Fixed heading with an unscoped search, and a release empties Unreleased, headings
included, so after 4.0.0 the first match in the file belonged to 4.0.0. Running it filed all seven
of 4.0.1's entries, two of them security, into the notes of a release that was already published.
It printed Assembled 5 into Fixed and exited zero.

It answers this document's three prompts cleanly, which is why it seemed worth a section rather than
just a fix:

  • What did I believe that was not true? That the script put entries under Unreleased. Its
    docstring says so and its error message says "in the unreleased section", so the belief came from
    the code itself.
  • What went green that should have gone red? The assembler, and changelog-assemble.sh --check
    in CI beside it, which validates fragments and never asks where they land.
  • Who caught it? A person reading the diff. No mechanism would have.

The fix is in BaryoDev/barakoCMS#705: searches scoped to the Unreleased section, a missing heading
created in place, and scripts/test-changelog-assemble.sh asserting where an entry lands, run in
CI. Watched failing before it was trusted, 0 of 6 against the old logic and 6 of 6 after.

Placed after "Read the exit code, not the output", since it is the same family: a command that
reports success without saying what it did.

Summary by CodeRabbit

  • Documentation
    • Added guidance on avoiding incorrect file locations when searching for changelog sections.
    • Documented requirements for targeting the Unreleased section, creating missing headings, and covering the process with fixture tests.

A search that edits a file took the first match, which after a release was the
previous version's section. Seven entries went into published release notes and
the script said it had worked.

Caught by reading the diff, so the gate was missing. It exists now and was
watched failing before it was trusted.
@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 3107476d-fff3-4934-8356-3bb28e9ba02f

📥 Commits

Reviewing files that changed from the base of the PR and between 60e4730 and d0e4197.

📒 Files selected for processing (1)
  • DELIVERY.md

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The change documents a changelog placement failure and defines rules for targeting the Unreleased section, creating missing headings, and verifying placement with fixture tests.

Changes

Changelog guidance

Layer / File(s) Summary
Unreleased placement rules
DELIVERY.md
Documents the incorrect placement incident and requires scoped searches, in-place heading creation, and fixture tests.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to d0e41

This change adds delivery guidance to prevent changelog entries from being placed in released sections. It introduces no runtime or deployment behavior and is ready to merge.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: documenting the changelog assembler gate in DELIVERY.md.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/delivery-assembler-gate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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