Skip to content

chore(release): stop appending sponsor blurb when communique succeeds#9395

Merged
jdx merged 1 commit intomainfrom
claude/great-sutherland-93446a
Apr 25, 2026
Merged

chore(release): stop appending sponsor blurb when communique succeeds#9395
jdx merged 1 commit intomainfrom
claude/great-sutherland-93446a

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 25, 2026

Summary

communique 1.0.3+ now generates its own ## Sponsor mise section as part of the AI-editorialized release body. The appended ## 💚 Sponsor mise heredoc added in #9272 therefore ends up duplicated whenever communique succeeds. 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 communique didn't already produce one. The success path is the common case and now gets exactly one sponsor section. The fallback path (rare — only when communique generate fails) 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.yml passes
  • yamllint .github/workflows/release.yml passes
  • Extracted the bash script via PyYAML and verified the heredoc is now inside the else block with the EOF terminator at column 0; bash -n passes
  • Simulated the fallback path with a stub script — output ends with exactly one ## 💚 Sponsor mise block
  • Next tagged release where communique succeeds produces a body with exactly one Sponsor mise heading

Note

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 release GitHub Actions workflow so the ## 💚 Sponsor mise heredoc is appended only when communique generate fails and the workflow falls back to git-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.

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.
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 25, 2026

Greptile Summary

This PR fixes a sponsor-section duplication bug in the GitHub release workflow. The heredoc that appends ## 💚 Sponsor mise is moved from after the if/else block into the else (fallback) branch, so it is only written when communique generate fails. When communique succeeds — the common case — its own output already contains the sponsor section, so no append is needed.

Confidence Score: 5/5

Safe 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 else block eliminates the duplication without touching any other logic. The EOF terminator sits at column 0 in the rendered bash script (10 spaces stripped by YAML), which is the required position for a non-<<- heredoc. No new variables, no new conditions, no side effects.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/release.yml Two-line restructure moves the sponsor heredoc inside the else branch; bash syntax is valid and EOF lands at column 0 after YAML indentation stripping.

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
Loading

Reviews (1): Last reviewed commit: "chore(release): stop appending sponsor b..." | Re-trigger Greptile

@github-actions
Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

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%

@jdx jdx merged commit dbf496e into main Apr 25, 2026
38 checks passed
@jdx jdx deleted the claude/great-sutherland-93446a branch April 25, 2026 20:05
jdx pushed a commit that referenced this pull request Apr 26, 2026
### 🚀 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)
jdx added a commit that referenced this pull request May 3, 2026
## 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>
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