BREAKING CHANGE footer with a continuation line keeps only the last line
Maintainers usually reply within 2 days
@kojiromike is already working on this.
Since Nov 6, 2026.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- node.js, typescript
- Domain
- backend
Research direction
Start by reading to-conventional-changelog-format.ts, identified in the issue as the source of the footer parsing behavior. Reproduce the case by calling parseConventionalCommits with the provided commit message, then inspect the 'token' handling. Done means the breaking change note includes both the original footer text and its indented continuation, with a focused test confirming the expected text.
Written by the indexing model from the issue text.
Description
This reports a bug where a BREAKING CHANGE footer wrapped onto an indented continuation line loses its description in the changelog. A PR with a fix follows.
Environment details
Reproduced with the published release-please 17.11.2 and on main at ea20bc2, on Node 22. The code dates back to the original to-conventional-changelog-format.ts, so earlier releases are affected too.
Steps to reproduce
Call parseConventionalCommits on a commit "feat: some feature" whose body is the footer "BREAKING CHANGE: the old API is gone" followed by the line " continued here" with a leading space. The expected note text is "the old API is gone continued here" and the actual text is "continued here".
Cause
In toConventionalChangelogFormat, the 'token' case visits the footer text nodes and assigns breaking.text = node.value each time so the last node wins.
Context
#2936 makes this more common. Its retry indents lines like Foo.Bar(baz(abc)) so "BREAKING CHANGE: the old API is gone" followed by "Foo.Bar(baz(abc))" now gives a note of just "Foo.Bar(baz(abc))". Before #2936 that commit was dropped entirely.
Reproduction:
const {parseConventionalCommits} = require('release-please/build/src/commit');
const [commit] = parseConventionalCommits([{
sha: 'abc',
files: [],
message: 'feat: some feature\n\nBREAKING CHANGE: the old API is gone\n continued here',
}]);
console.log(commit.notes);
// [ { title: 'BREAKING CHANGE', text: 'continued here' } ]
- Dominant language
- TypeScript
- Stars
- 7.8k
- Forks
- 621
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 8
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from googleapis/release-please
-
Overflow release-notes.md is saved with latin1 encoding, corrupting non-ASCII characters (e.g. ⚠)Possibly taken @jay23606 claimed this 7 days ago. Openpriority: p3 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
googleapis/release-please#2953 ·
Maintainers usually reply within 2 days
-
priority: p3 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
googleapis/release-please#2952 ·
Maintainers usually reply within 2 days
-
exclude-paths filters out empty Release-As commits in manifest modePossibly taken @anishesg claimed this 63 days ago. Openpriority: p3 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
googleapis/release-please#2891 · 1 comment ·
Maintainers usually reply within 2 days
-
TypeError: Cannot read properties of undefined (reading 'match') when a commit subject contains a raw `<details>` token - crashes re-parsing of the open release pull request bodyPossibly taken @johnitvn claimed this 83 days ago. Openpriority: p3 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
googleapis/release-please#2884 · 1 reaction ·
Maintainers usually reply within 2 days
-
cargo-workspace: cascaded dependent bumps ignore the active prerelease windowMay be free again A pull request for this issue was closed without being merged. Openpriority: p3 type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
googleapis/release-please#2828 · 2 comments ·
Maintainers usually reply within 2 days
All issues in googleapis/release-please
Similar issues
-
parse: child keys like `007`, `1e3`, `0x1f`, `-1` make the parent an empty array and hide the valueOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement follow-up
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 62/100
bketelsen/pi-pocket-team#232 ·
Maintainers usually reply within 1 day
-
bug UI
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
wardian-app/Wardian#1746 ·
Maintainers usually reply within 1 day
-
area: interop area: sip-core v3
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
fonoster/routr#705 · 1 comment ·
Maintainers usually reply within 1 day