Thanks for stopping by to let us know something could be better!
Is your feature request related to a problem? Please describe.
I run release-please-action v4 (release-please 17.3.0) on two repos and each gives me half of the changelog I actually want.
git-chunks uses the default changelog renderer. When I squash-merge a PR whose body ends with extra Conventional Commit messages (fix: ..., docs: ... and so on), release-please expands them into separate changelog entries grouped by type, which is great because one squash commit can honestly describe several changes. The run log shows it working (4 git commits split into 7 conventional commits):
✔ Considering: 4 commits
✔ Considering: 7 commits
You can see the result in the release PR: jishnuteegala/git-chunks#9 (several changelog entries produced from fewer merged PRs). But there is no attribution, so nothing says who contributed each change.
glasspick uses "changelog-type": "github". Its release PR (jishnuteegala/glasspick#13) comes out as:
* feat: ship GlassPick v2 by @jishnuteegala in https://github.com/jishnuteegala/glasspick/pull/10
plus a New Contributors section, which I also really like because every entry credits the PR author and links the PR. But the github renderer throws away everything release-please parsed: src/changelog-notes/github.ts receives the commits as _commits (unused) and just calls GitHub's generate-release-notes API, which means the trailer commits release-please demonstrably parsed in that same run never show up. One merged PR is one line, no matter how many changes the trailers describe.
So right now I have to choose between expansion and attribution, but I would like to have both in one changelog.
Describe the solution you'd like
One changelog with both behaviours: conventional-commit expansion (multiple entries from one squash commit, grouped by type/section) and GitHub-style attribution (by @author in <PR URL> per entry, plus a New Contributors section).
Two shapes come to mind, in rough preference order:
- An option on the default renderer, say
include-pr-authors, that resolves each entry's originating PR and appends by @author in <url>, plus an opt-in include-new-contributors section. I'd prefer this because the default renderer already has all the parsed commits, so it only needs the PR lookup.
- Let the
github changelog type merge in the expanded conventional commits instead of ignoring them.
Describe alternatives you've considered
Additional context
Related existing issues: #2758 (append GitHub's generated changelog to release-please's), #2741 (similar want, solved externally), #292 (contributors section request from 2019).
Repro configs, both on release-please-action v4 / release-please 17.3.0:
glasspick (github renderer, gets attribution, loses expansion):
{
"packages": {
".": {
"release-type": "node",
"changelog-type": "github"
}
}
}
git-chunks (default renderer, gets expansion, loses attribution):
{
"packages": {
".": {
"release-type": "node"
}
}
}
Thanks for stopping by to let us know something could be better!
Is your feature request related to a problem? Please describe.
I run release-please-action v4 (release-please 17.3.0) on two repos and each gives me half of the changelog I actually want.
git-chunks uses the default changelog renderer. When I squash-merge a PR whose body ends with extra Conventional Commit messages (
fix: ...,docs: ...and so on), release-please expands them into separate changelog entries grouped by type, which is great because one squash commit can honestly describe several changes. The run log shows it working (4 git commits split into 7 conventional commits):You can see the result in the release PR: jishnuteegala/git-chunks#9 (several changelog entries produced from fewer merged PRs). But there is no attribution, so nothing says who contributed each change.
glasspick uses
"changelog-type": "github". Its release PR (jishnuteegala/glasspick#13) comes out as:plus a
New Contributorssection, which I also really like because every entry credits the PR author and links the PR. But the github renderer throws away everything release-please parsed:src/changelog-notes/github.tsreceives the commits as_commits(unused) and just calls GitHub's generate-release-notes API, which means the trailer commits release-please demonstrably parsed in that same run never show up. One merged PR is one line, no matter how many changes the trailers describe.So right now I have to choose between expansion and attribution, but I would like to have both in one changelog.
Describe the solution you'd like
One changelog with both behaviours: conventional-commit expansion (multiple entries from one squash commit, grouped by type/section) and GitHub-style attribution (
by @author in <PR URL>per entry, plus aNew Contributorssection).Two shapes come to mind, in rough preference order:
include-pr-authors, that resolves each entry's originating PR and appendsby @author in <url>, plus an opt-ininclude-new-contributorssection. I'd prefer this because the default renderer already has all the parsed commits, so it only needs the PR lookup.githubchangelog type merge in the expanded conventional commits instead of ignoring them.Describe alternatives you've considered
include-commit-authors(Add commit fields to access authors and PR number #1716, PR feat: add include-commit-authors option to include author info in changelogs #2628) is close but weaker: it credits commit authors rather than PR authors, renders only(@username)with no PR URL, has noNew Contributorssection, and is currently reported broken in include-commit-authors has no effect because author metadata is dropped in parseConventionalCommits() #2761 becauseparseConventionalCommits()drops the author field.changelog-type: githubin glasspick and accepting one entry per merged PR, since attribution matters more to me there. I'd switch to the default renderer immediately if it could attribute PR authors.Additional context
Related existing issues: #2758 (append GitHub's generated changelog to release-please's), #2741 (similar want, solved externally), #292 (contributors section request from 2019).
Repro configs, both on release-please-action v4 / release-please 17.3.0:
glasspick (github renderer, gets attribution, loses expansion):
{ "packages": { ".": { "release-type": "node", "changelog-type": "github" } } }git-chunks (default renderer, gets expansion, loses attribution):
{ "packages": { ".": { "release-type": "node" } } }