Skip to content

fix(changelog): render pending fragments and fail CI on block drift (#2289) - #2355

Open
seonghobae wants to merge 1 commit into
mainfrom
seonghobae/moa-2289-changelog
Open

seonghobae wants to merge 1 commit into
mainfrom
seonghobae/moa-2289-changelog

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Fixes #2289. Covers part 2 of #2127.

Problem

On main (a0d7958), python scripts/render_changelog_fragments.py --check CHANGELOG.md exits 1 because the authoritative block is stale. Four fragments in docs/changelog.d/ were never rendered: license-evidence-0.11.5, fail-closed-allowlist-ci-lanes, release-source-checkout-authority and semgrep-red-gate. Main has no hand-written duplicate license heading, so the fragment text is authoritative as-is.

Change

  • Ran --update. That added 88 lines, all inside the marker block. The text above the block and every released section are byte-identical.
  • The python-matrix job in ci.yml now runs python scripts/render_changelog_fragments.py --check CHANGELOG.md right after setup-python. The step uses the stdlib only and adds no new job, permission or action.
  • Three tests were added:
  • The license fragment has both Added and Changed sections, so its #### heading appears once under each. That matches the renderer's existing behaviour.

Verification (local)

  • --check: exit 1 before the change, exit 0 after.
  • tests/test_changelog_fragment_contract.py: 13 passed. Before the fix it was 2 failed, 11 passed.
  • Mutation checks were run and reverted afterwards. In each of these cases the matching new test failed: the stale block is kept; the block is stripped while fragments exist; --check never fails; the CI step is removed; main's stale CHANGELOG is restored.
  • actionlint .github/workflows/ci.yml: exit 0.

Not in this PR

#2127 part 1 (an empty inventory strips the markers) depends on the code from #2126, which is still open, and should follow once it merges.

…2289)

The authoritative CHANGELOG.md block on main omitted four
docs/changelog.d fragments, so render_changelog_fragments.py --check
failed. Render them, run --check in the required python matrix, and
pin the non-empty-inventory replacement contract (#2127 part 2).
@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 59 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: ContextualWisdomLab/fast-mlsirm/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: d65ec621-4420-49f3-a0be-073efef028c4
📥 Commits

Reviewing files that changed from the base of the PR and between a0d7958 and c21e4ba.

📒 Files selected for processing (3)
  • .github/workflows/ci.yml
  • CHANGELOG.md
  • tests/test_changelog_fragment_contract.py
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

This branch has not been deployed

No deployments
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.

CHANGELOG.md authoritative block is stale on main (license-evidence fragment; --update duplicates heading)

1 participant