From e7b50754e0cf4a2b635f4739b4863a57ab07a4f9 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 21 Sep 2026 15:55:32 +0000 Subject: [PATCH] build: group dependency commits in the generated release notes v0.17.1 is entirely dependency work -- three `deps:` commits upgrading nine soulteary kits across new major module paths -- and nothing else has landed since v0.17.0. GoReleaser builds the release body from commit subjects, and neither prefix this repository uses for that work reaches a group: `^chore:` in the exclude list does not match `chore(deps):`, and `deps:` matches no group regexp at all. Both fall through to Others, so this release would publish as a single untitled list -- the one shape where the grouping config does nothing at exactly the release that needs it. The regexp covers both prefixes actually in this history (11 `chore(deps):` from Dependabot, 3 `deps:` by hand) plus `build(deps):`, which is Dependabot's default for gomod and would arrive the moment the commit-message config changes. Placed after Bug fixes so a `fix(deps):` still reads as a fix: GoReleaser takes the first group that matches, in definition order. Verified against Go's regexp package, which is the engine GoReleaser uses: the three release commits and both Dependabot shapes group under Dependencies, while feat/fix/perf keep the groups they had. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01HarHYzcGnvPbsnzD1esjpe --- .goreleaser.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 7e25a77..fb1bf46 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -85,6 +85,14 @@ changelog: - title: Performance regexp: '^.*?perf(\([[:word:]]+\))??!?:.+$' order: 2 + # Both prefixes this repository actually uses for dependency work: `deps:` + # by hand and `chore(deps):` from Dependabot. Neither is caught by the + # `^chore:` exclude above, so without this group they land in Others -- + # which for a release that is entirely dependency work means the whole + # release body renders as one untitled list. + - title: Dependencies + regexp: '^.*?(deps(\([[:word:]]+\))?|[[:word:]]+\(deps\))!?:.+$' + order: 3 - title: Others order: 999