Skip to content

fix(version): flag breaking changes on the entry instead of in its description - #720

Merged
goosewobbler merged 2 commits into
mainfrom
fix/breaking-flag-from-parser
Oct 23, 2026
Merged

goosewobbler merged 2 commits into
mainfrom
fix/breaking-flag-from-parser

Conversation

@goosewobbler

@goosewobbler goosewobbler commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Description

The version step's commit parser recorded a breaking change (a type!: header or a BREAKING CHANGE: footer) by writing **BREAKING** into the entry's description, and never set the breaking field. Everything downstream that marks breaking changes reads that field: notes' markdown renderer (its Breaking section and per-entry marker) and the LLM prompt's breaking="true" attribute. Templates print only the description; #722 fixes those.

So in LLM-enhanced notes the model rewrote the description, the prefix went with it, and no Breaking section appeared. #614's preview shows it: 0.42.0's five breaking changes (#616, #690, #694, #708, #674) are listed as ordinary entries, and their manifest entries have breaking: null with the prefix in the text. #718 stopped the model clearing the flag, but the flag was never set.

  • Parser: sets breaking: true and leaves the description as the commit subject.
  • Renderers that printed the description directly (the standing PR's combined changelog, the release preview comment, and a GitHub Release body set to changelog) now add the **BREAKING** marker from the flag.
  • Dedupe keys (the standing-PR changelog's, and version's repo-level entry map) include the flag, so a breaking and a non-breaking entry with the same subject stay separate.
  • Older manifests in open standing PRs have the prefix in their text and no flag, so they render as before.

Related Issue(s)

None; seen in #614's release-notes preview. Follows #718.

Type of Change

  • feat — New feature
  • fix — Bug fix
  • docs — Documentation change
  • refactor — Code refactoring
  • test — Adding or updating tests
  • chore — Maintenance, dependencies, tooling
  • Breaking change — Requires major version bump

Scope

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release
  • @releasekit/config
  • @releasekit/core
  • CI / workflows
  • Root / monorepo

Checklist

  • Lint passes (pnpm lint)
  • Tests pass (pnpm test)
  • Typecheck passes (pnpm typecheck)
  • Documentation updated (if applicable)
  • Breaking changes noted in description

Testing Notes

  • The parser test now expects breaking: true with the plain subject for both a ! header and a BREAKING CHANGE: footer.
  • New tests: the standing-PR changelog, the preview comment and a changelog release body mark a flagged entry **BREAKING**; the standing-PR changelog and the repo-level entry map keep a breaking and a non-breaking entry with the same subject apart. Each fails without its fix.
  • The root integration suite's end-to-end check (single.spec.ts: a breaking commit renders BREAKING in the generated changelog) passes, now through the flag.
  • Full gate (typecheck and tests, all packages), lint, and the integration suite (78) pass.

🤖 Generated with Claude Code

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; both previously reported problems are fixed.

Summary

Breaking changes now use breaking: true instead of a marker stored in description.

  • Breaking commits keep their status in the changelog entry.
  • Release notes mark breaking entries without changing their descriptions.

Reviews (2) · Last reviewed commit: "fix: mark breaking changes in changelog ..." · Reviewed by Greptile

…scription

The commit parser recorded a `!` or `BREAKING CHANGE:` commit by writing
`**BREAKING** ` into the description and never set `breaking`. LLM-enhanced
notes rewrite the description, so the marker vanished, and with no flag the
renderer added no Breaking section. The parser now sets `breaking: true`
and leaves the description alone; the standing-PR changelog and the
release preview, which printed the description directly, add the marker
from the flag. Older manifests keep rendering from their prefixed text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Standing release PR: #614 · v0.42.0 queued (4 packages) · open 82d 23h 24m · ✅ ready to merge

Release Preview — v0.41.2 → v0.41.3

Note: Labels on this PR are advisory in standing-pr mode. Bumps come from conventional commits in the standing PR; override by editing labels on the standing PR itself. Add release:immediate to bypass the standing PR and release this PR directly.

These changes will be added to the release PR (#614) when merged:

Changelog

monorepo 0.41.2 → 0.41.3

Fixed

  • mark breaking changes in changelog release bodies, and keep them apart when deduping
  • flag breaking changes on the entry instead of in its description (version)

All packages → 0.41.3 (sync versioning)

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release

After merge — predicted release

No version escalation — this PR's changes will be included in the queued release without affecting the projected versions.

Package Standing PR This PR After merge
monorepo 0.42.0 0.41.3 0.42.0

Updated automatically by ReleaseKit

Comment thread packages/version/src/changelog/commitParser.ts
Comment thread packages/version/src/changelog/commitParser.ts
… apart when deduping

`githubRelease.body: 'changelog'` printed only the description, so it lost
the marker once it moved to the flag. The standing-PR changelog's dedupe
key and version's repo-level entry map keyed on type and description, so a
breaking and a non-breaking commit with the same subject merged and the
breaking one could be dropped. Both keys now include the flag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@goosewobbler

Copy link
Copy Markdown
Owner Author

@greptileai review plz

@goosewobbler
goosewobbler merged commit 95fa4a6 into main Oct 23, 2026
56 of 62 checks passed
@goosewobbler
goosewobbler deleted the fix/breaking-flag-from-parser branch October 23, 2026 17:35
@github-actions github-actions Bot mentioned this pull request Oct 23, 2026
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