Skip to content

release-please: commit-message subjects with parens or quotes silently dropped from CHANGELOG #578

@bokelley

Description

@bokelley

What

The release-please conventional-commit parser fails on commit subjects containing embedded parens or quotes, and silently drops the affected commits from the auto-generated CHANGELOG. Verified in the workflow logs from run 25326163877:

```
commit could not be parsed: c2ab696... fix(auth): synthesize AuthInfo(kind="bearer") in _build_request_context for bearer flows (#577)
error message: Error: unexpected token '"' at 10:60, valid tokens [)]

commit could not be parsed: 4ead607... feat(auth): serve(auth=BearerTokenAuth(...)) — A2A sibling + cross-transport shortcut (#566)
error message: Error: unexpected token '(' at 6:27, valid tokens [)]

commit could not be parsed: 2affd00... fix(ci): unblock storyboard runner — poll, MCP outputSchema, ref seller boot (#443)
error message: Error: unexpected token '(' at 60:32, valid tokens [)]
```

The workflow exits "success" — no surface signal that commits were dropped. Each affected commit is in the code but absent from the CHANGELOG, so adopters reading the published release notes see an incomplete picture.

Impact

Three commits silently missing from the v4.4.0 release-please PR (#328):

For 4.4.0 we'll patch by editing the release PR body manually. Going forward we need either a parser fix or a commit-message convention.

Direction

Two viable paths:

  1. Convention — document in `CONTRIBUTING.md` / pre-commit hook that conventional-commit subjects must not contain embedded parens or quotes. Move the offending content to the body. Brittle (relies on contributor discipline) but zero infra change.

  2. Tooling — find a release-please config option / parser plugin that tolerates parens/quotes in subjects, OR add a pre-merge GitHub Action that lints squash-merge commit messages before they hit main. Better long-term.

Surfaced by

Investigation of release-please PR #328 during 4.4.0 release prep — three of today's merged PRs were missing from the changelog despite successful release-please runs.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions