chore(release): stop appending sponsor blurb when communique succeeds#9395
chore(release): stop appending sponsor blurb when communique succeeds#9395
Conversation
communique 1.0.3+ now generates its own `## Sponsor mise` section in the AI-editorialized release body, so the appended `## 💚 Sponsor mise` block from #9272 ends up duplicated. v2026.4.20 and v2026.4.22 both shipped with two sponsor sections for this reason. Move the heredoc into the git-cliff fallback branch so the blurb is only added when communique didn't already produce one. The fallback path otherwise yields a stripped changelog with no branding.
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
Greptile SummaryThis PR fixes a sponsor-section duplication bug in the GitHub release workflow. The heredoc that appends Confidence Score: 5/5Safe to merge — the change is a two-line restructure with no logic added and correct bash heredoc syntax after YAML indentation stripping. The fix is minimal and surgically correct: moving the heredoc inside the No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Generate release notes] --> B{communique generate succeeds?}
B -- Yes --> C[Parse title from output]
C --> D[Strip title line from body]
D --> E[release-notes.txt\n= communique body\n+ communique sponsor section]
B -- No --> F[Warning: falling back to git-cliff]
F --> G[git cliff --strip all --latest]
G --> H[Append heredoc\n## 💚 Sponsor mise]
H --> I[release-notes.txt\n= git-cliff body\n+ heredoc sponsor section]
E --> J[gh release create]
I --> J
Reviews (1): Last reviewed commit: "chore(release): stop appending sponsor b..." | Re-trigger Greptile |
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 x -- echo |
23.7 ± 0.7 | 22.1 | 25.7 | 1.00 |
mise x -- echo |
24.1 ± 0.6 | 22.6 | 26.9 | 1.01 ± 0.04 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 env |
22.9 ± 0.8 | 21.5 | 28.5 | 1.00 |
mise env |
23.1 ± 0.6 | 21.8 | 24.8 | 1.01 ± 0.04 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 hook-env |
23.8 ± 0.7 | 22.3 | 26.3 | 1.00 |
mise hook-env |
24.1 ± 0.6 | 22.7 | 26.0 | 1.01 ± 0.04 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.22 ls |
23.7 ± 0.6 | 22.0 | 25.8 | 1.00 |
mise ls |
24.3 ± 0.6 | 22.8 | 26.4 | 1.02 ± 0.04 |
xtasks/test/perf
| Command | mise-2026.4.22 | mise | Variance |
|---|---|---|---|
| install (cached) | 168ms | 172ms | -2% |
| ls (cached) | 83ms | 84ms | -1% |
| bin-paths (cached) | 84ms | 84ms | +0% |
| task-ls (cached) | 861ms | 804ms | +7% |
### 🚀 Features - **(backend)** add global libc preference by @jdx in [#9404](#9404) - opt-in to pre-release versions for github and aqua backends by @jakedgy in [#9329](#9329) ### 🐛 Bug Fixes - **(backend)** allow unresolved latest opt-in by @jdx in [#9401](#9401) - **(install)** stop rewriting healthy runtime symlinks by @jdx in [#9410](#9410) - **(node)** route musl tarball URLs to unofficial-builds by @jdx in [#9409](#9409) - **(prune)** skip remote version resolution for tracked configs by @jdx in [#9406](#9406) - **(schema)** allow array values in tool additionalProperties by @JP-Ellis in [#9400](#9400) ### 📦️ Dependency Updates - bump communique to 1.1.2 by @jdx in [#9402](#9402) ### 📦 Registry - use aqua for rumdl by @scop in [#9397](#9397) ### Chore - **(ci)** improve pr-closer workflow by @jdx in [#9403](#9403) - **(release)** stop appending sponsor blurb when communique succeeds by @jdx in [#9395](#9395) ### New Contributors - @JP-Ellis made their first contribution in [#9400](#9400)
## Summary - The sponsor block was unintentionally limited to the communique-failure fallback in #9395, so successful releases (the normal case) lost the block starting with v2026.4.22. - Move the `cat >> /tmp/release-notes.txt <<'EOF'` heredoc back outside the `if/else` so it runs in both branches, matching the behavior used for v2026.4.21. - v2026.5.0 has been manually edited on GitHub to include the sponsor block; this PR ensures future releases get it automatically. ## Test plan - [ ] Next release (or a draft release run) shows the "💚 Sponsor mise" section appended to the communique-generated notes. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk workflow tweak that only changes the generated GitHub release notes content by ensuring the sponsor section is appended regardless of which release-notes generator succeeds. > > **Overview** > Fixes the release workflow so the "💚 Sponsor mise" section is **always** appended to `/tmp/release-notes.txt`, whether release notes are generated via `communique` or the `git-cliff` fallback. > > This restores consistent release-note output for normal (successful) releases by moving the sponsor heredoc outside the `if/else` in `.github/workflows/release.yml`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 115ac52. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
communique1.0.3+ now generates its own## Sponsor misesection as part of the AI-editorialized release body. The appended## 💚 Sponsor miseheredoc added in #9272 therefore ends up duplicated whenevercommuniquesucceeds. Both v2026.4.20 and v2026.4.22 shipped with two sponsor sections side by side because of this — see the bottom of the v2026.4.22 release notes for an example.This moves the heredoc into the git-cliff fallback branch so the blurb is only appended when
communiquedidn't already produce one. The success path is the common case and now gets exactly one sponsor section. The fallback path (rare — only whencommunique generatefails) still gets the blurb so a degraded release body still has a sponsor CTA.The communique bump that introduced its own sponsor section landed in #9332 (1.0.3) and was first used by v2026.4.20 — exactly when the duplication started.
Test plan
actionlint .github/workflows/release.ymlpassesyamllint .github/workflows/release.ymlpasseselseblock with theEOFterminator at column 0;bash -npasses## 💚 Sponsor miseblockcommuniquesucceeds produces a body with exactly oneSponsor miseheadingNote
Low Risk
Low risk workflow-only change that just moves when the sponsor blurb is appended; main risk is minor formatting/indentation mistakes affecting release note generation.
Overview
Updates the
releaseGitHub Actions workflow so the## 💚 Sponsor miseheredoc is appended only whencommunique generatefails and the workflow falls back togit-cliff, preventing duplicate sponsor sections in successful releases.Reviewed by Cursor Bugbot for commit dddff28. Bugbot is set up for automated code reviews on this repo. Configure here.