Skip to content

fix(changelog): make independent prepends union-mergeable - #2091

Open
seonghobae wants to merge 1 commit into
mainfrom
fix/changelog-union-contract-1961
Open

fix(changelog): make independent prepends union-mergeable#2091
seonghobae wants to merge 1 commit into
mainfrom
fix/changelog-union-contract-1961

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Summary

  • configure the changelog for union merging
  • add structural checks for non-empty sections and balanced fences
  • preserve the current changelog shape while reducing prepend conflicts

Closes #1961

Verification

  • python -m pytest -q tests/test_changelog_structure_contract.py (2 passed)
  • python -m compileall -q tests/test_changelog_structure_contract.py
  • git diff --check

@coderabbitai

coderabbitai Bot commented Sep 11, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 5 minutes.

Check out review usage here.

View limit details

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

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

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 7f168662-5efe-4969-815c-c3e6c1e58235

📥 Commits

Reviewing files that changed from the base of the PR and between cb0872c and d148e04.

📒 Files selected for processing (3)
  • .gitattributes
  • CHANGELOG.d/20260911-changelog-union-contract.md
  • tests/test_changelog_structure_contract.py

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.

@opencode-agent opencode-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

OpenCode could not approve from deterministic current-head evidence because GitHub Checks have failed.

Findings

1. HIGH Current-head GitHub Checks - Fix failed required checks before approval

  • Problem: Failed same-head checks remain for d148e04664cc9de92d56e2bc0a95c9cd94e35b92.
  • Root cause: The model-unavailable evidence fallback is allowed only when peer GitHub Checks are complete and clean.
  • Fix: Read and fix the failed check logs below, then rerun the current-head checks.
  • Regression test: Keep the model-unavailable fallback gated on an empty failed-check rollup.

Failed checks:

Changed-File Evidence Map

flowchart LR
  PR["PR changed files"] --> Evidence["OpenCode bounded evidence"]
  Evidence --> S1["Repository file: .gitattributes"]
  S1 --> I1["repository behavior"]
  I1 --> R1["Review risk: Repository file: .gitattributes"]
  R1 --> V1["required checks"]
  Evidence --> S2["Repository file: 20260911-changelog-union-contract.md"]
  S2 --> I2["repository behavior"]
  I2 --> R2["Review risk: Repository file: 20260911-changelog-union-contract.md"]
  R2 --> V2["required checks"]
  Evidence --> S3["Test: test_changelog_structure_contract.py"]
  S3 --> I3["regression suite"]
  I3 --> R3["Review risk: Test: test_changelog_structure_contract.py"]
  R3 --> V3["targeted test run"]
Loading

@opencode-agent

Copy link
Copy Markdown
Contributor

OpenCode Review Overview

@seonghobae

Copy link
Copy Markdown
Contributor Author

HIGH/functional finding on exact head d148e04664cc9de92d56e2bc0a95c9cd94e35b92: the merge-driver rule does not cover the files this PR is adding. .gitattributes contains only CHANGELOG.md merge=union, while the new release fragments live under CHANGELOG.d/*.md. In the PR worktree, git check-attr merge -- CHANGELOG.d/20260911-changelog-union-contract.md returns merge: unspecified. The focused contract passes (2 passed), but it only asserts the existing root CHANGELOG.md rule and does not exercise the fragment path. If the intended contract is independent changelog fragments, add a pattern/rule covering CHANGELOG.d/ (and a test using an actual fragment path) or narrow the PR scope and clarify that fragments are not protected.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working priority: high High-priority or P1 work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CHANGELOG.md prepend collisions make long-lived PRs non-convergent: 8 rounds in 19h, next collision 4m21s after the last resolution

1 participant