Skip to content

fix(changelog): match the crate-prefixed tags release-plz creates - #175

Merged
sksizer merged 1 commit into
mainfrom
fix/changelog-tag-pattern
Sep 23, 2026
Merged

sksizer merged 1 commit into
mainfrom
fix/changelog-tag-pattern

Conversation

@sksizer

@sksizer sksizer commented Sep 23, 2026

Copy link
Copy Markdown
Owner

The 0.7.1 section of the release PR is empty despite fourteen commits being in range. This is why.

Cause

cliff.toml pinned tag_pattern = "v[0-9].*", but release-plz prefixes release tags with the crate name in a workspace:

ontogen-v0.7.0   ontogen-core-v0.5.0   ontogen-ts-v0.1.6

That pattern matches none of them — only the four legacy tags from before the workspace split (v0.1.0, v0.2.1, v0.2.2, v0.3.0). With no current release tag to bound the range, git-cliff has nothing to diff against and emits almost nothing.

Same config, same repo, two boundary strategies:

boundary output
explicit range ontogen-v0.7.0..main 4 Added, 1 Changed, 9 Fixed
--unreleased (via tag_pattern) 1 Changed

The commits and commit_parsers were never the problem.

Fix

Unset tag_pattern. Every tag then counts, so the newest one bounds the range correctly, and release-plz passes the per-package range explicitly regardless.

Also skips ^merge: a merge: … subject parses as a conventional commit, so the stack-merge commits from resolving the PR stack were forming their own ### merge section in the release notes.

Verified

git-cliff --config cliff.toml --unreleased now renders all fourteen commits under Added / Changed / Fixed, with no merge section. just full-check green.

Merging this re-triggers release-plz, which should regenerate #174 with real release notes.

`tag_pattern = "v[0-9].*"` matched none of this workspace's release tags.
release-plz prefixes them with the crate name — `ontogen-v0.7.0`,
`ontogen-core-v0.5.0` — so the pattern only ever matched the four legacy
tags from before the workspace split, `v0.1.0` through `v0.3.0`.

git-cliff could then find no current release to bound the range against
and emitted an almost-empty changelog. The 0.7.1 release PR lists one
commit; fourteen are in range. Same config, same repo, two boundaries:

    git-cliff … ontogen-v0.7.0..main   4 Added, 1 Changed, 9 Fixed
    git-cliff … --unreleased           1 Changed

Unset, every tag counts and the newest bounds the range correctly;
release-plz passes the per-package range explicitly regardless.

Also skip `^merge`. A `merge: …` subject parses as a conventional commit,
so the stack-merge commits were forming their own `### merge` section in
the release notes.
@sksizer
sksizer merged commit d25a00b into main Sep 23, 2026
1 of 2 checks passed
@sksizer
sksizer deleted the fix/changelog-tag-pattern branch September 23, 2026 06:54
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