Skip to content

chore(changelog): regenerate from conventional commits - #220

Closed
github-actions[bot] wants to merge 1 commit into
mainfrom
bot/changelog-20260922-154322
Closed

github-actions[bot] wants to merge 1 commit into
mainfrom
bot/changelog-20260922-154322

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

Auto-generated by hyperpolymath/standards changelog-reusable.yml.

Closes part of the 2026-05-26 CHANGELOG gap (standards#197 audit).

@coderabbitai

coderabbitai Bot commented Sep 22, 2026

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: f86d1921-30c8-4307-b11f-7711e7cc8d53

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

@hyperpolymath

Copy link
Copy Markdown
Owner

Closing this PR — it was opened by a buggy changelog workflow that was producing an infinite chain of changelog PRs (each merge of a changelog PR added a new commit, which re-triggered regeneration, which opened the next PR).

Fix is in progress in standards#988. After that merges, the next run will produce a single cleanup PR with no spammy bullets, and merging it will end the loop. See maa-framework#219 for diagnosis.

hyperpolymath added a commit that referenced this pull request Sep 22, 2026
## Summary

Closes #219. The changelog workflow was caught in an infinite PR loop:
merging one changelog PR added a new `chore(changelog): regenerate from
conventional commits (#NNN)` conventional commit, which git-cliff picked
up under Chores, which produced a fresh CHANGELOG diff, which opened the
next PR. 21 such commits accumulated on `main` (#192, #195, #199,
#201–#218) before detection; PR #220 (which appeared mid-fix) has been
closed.

## What changed

Three complementary layers (defense in depth):

1. **cliff.toml (new — local override)** — adds a `skip = true` commit
parser for the bot's own `chore(changelog): regenerate from conventional
commits` subjects (placed **before** the generic `^chore` matcher
because `commit_parsers` is first-match-wins). This is the **primary
fix** because the regex matches both the bot's branch commit subject and
the default GitHub squash-merge subject (`… (#NNN)`), which is what
actually lands on `main`.

This is an emergency hotfix. The canonical fix is being submitted to
`hyperpolymath/standards` in parallel (standards#988), and once that
merges this local file should be deleted so the repo returns to
consuming the canonical estate config (per the comment in
`changelog.yml`).

2. **CHANGELOG.md** — regenerated against the fixed config. **Only the
21 spammy `Regenerate from conventional commits` bullets are removed**
(verified: 21 deletions, 0 additions; no other content is altered).

3. **.github/workflows/changelog.yml** — adds a job-level `if:` guard
(`${{ !contains(github.event.head_commit.message, '[skip changelog]')
}}`) so the reusable isn't even invoked when the triggering push's head
commit carries the `[skip changelog]` marker. This complements the
reusable's own internal guard job (added in standards#988).

## Verification

- Running `git-cliff --config cliff.toml` against current `main`
produces a CHANGELOG with **zero** `Regenerate from conventional
commits` bullets (was 21 before).
- After committing the regenerated CHANGELOG, re-running `git-cliff`
produces **no diff** → idempotent; the next workflow run will be a
no-op.
- Simulated a squash-merge of a future changelog PR (committing with the
default squash subject `chore(changelog): regenerate from conventional
commits (#NNN)`) and re-running `git-cliff` → **zero diff**; loop is
broken.

## Follow-up (after merge)

- [ ] Merge standards#988 (canonical fix in the reusable + canonical
cliff.toml)
- [ ] Once standards#988 is on `standards@main`, delete the local
`cliff.toml` in a follow-up PR and rely again on the canonical config
- [ ] Re-run the changelog workflow (or rely on the next real push to
`main`) to confirm the job exits cleanly with `No CHANGELOG changes;
skipping PR.`

[skip changelog]

Co-authored-by: hyperpolymath-bot <github-actions[bot]@users.noreply.github.com>
@hyperpolymath
hyperpolymath deleted the bot/changelog-20260922-154322 branch September 23, 2026 09:46
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