chore(release): add en.dev sponsor blurb to release notes#9272
Conversation
Appends a short explainer + sponsor CTA for en.dev to every GitHub Release body, added to both the communique output and the git-cliff fallback so it appears regardless of which path generates the notes. Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
|
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 appends a static "Sponsor mise" markdown section to every GitHub Release body by adding a Confidence Score: 5/5Safe to merge; change is purely additive static markdown with no impact on build artifacts or release logic. Only remaining finding is P2 cosmetic (missing No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Generate release notes step] --> B{communique succeeds?}
B -- yes --> C[Write communique output\nto /tmp/release-notes.txt]
B -- no --> D[Write git-cliff / fallback\nto /tmp/release-notes.txt]
C --> E["cat >> /tmp/release-notes.txt\n(append sponsor blurb)"]
D --> E
E --> F[Create Draft GitHub Release\n--notes-file /tmp/release-notes.txt]
Reviews (2): Last reviewed commit: "chore(release): drop hr separator from s..." | Re-trigger Greptile |
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 15061b3. Configure here.
| mise is built by [@jdx](https://github.com/jdx) under [**en.dev**](https://en.dev) — an independent studio making developer tooling (mise, [aube](https://aube.en.dev/), and more). Development is funded by sponsors. | ||
|
|
||
| If mise saves you or your team time, please consider sponsoring at [en.dev](https://en.dev). Individual and company sponsorships keep mise fast, free, and independent. | ||
| EOF |
There was a problem hiding this comment.
Missing horizontal rule separator in sponsor blurb
Low Severity
The PR description shows the expected rendered output starting with a --- horizontal rule to visually separate the sponsor section from the release notes body, but the heredoc content does not include a --- line. The appended markdown begins directly with ## 💚 Sponsor mise, so the sponsor section will blend into the preceding release notes without the intended visual separator.
Reviewed by Cursor Bugbot for commit 15061b3. Configure here.
There was a problem hiding this comment.
Intentional — the --- separator was removed in 15061b3 at the author's request. The PR description is stale relative to that commit. Leaving as-is.
This comment was generated by an AI coding assistant.
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.18 x -- echo |
17.5 ± 0.5 | 16.2 | 18.7 | 1.00 |
mise x -- echo |
18.3 ± 0.9 | 17.0 | 31.7 | 1.04 ± 0.06 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.18 env |
17.2 ± 0.5 | 15.9 | 22.0 | 1.00 |
mise env |
17.8 ± 0.6 | 16.4 | 21.0 | 1.04 ± 0.05 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.18 hook-env |
17.6 ± 0.8 | 16.7 | 28.8 | 1.00 |
mise hook-env |
18.8 ± 1.8 | 17.7 | 56.9 | 1.06 ± 0.11 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.4.18 ls |
16.8 ± 0.4 | 15.9 | 18.8 | 1.00 |
mise ls |
17.3 ± 0.4 | 16.3 | 19.7 | 1.03 ± 0.03 |
xtasks/test/perf
| Command | mise-2026.4.18 | mise | Variance |
|---|---|---|---|
| install (cached) | 112ms | 116ms | -3% |
| ls (cached) | 65ms | 67ms | -2% |
| bin-paths (cached) | 68ms | 69ms | -1% |
| task-ls (cached) | 721ms | 710ms | +1% |
### 🚀 Features - **(backend)** support aqua vars templates by @risu729 in [#9110](#9110) - add gsudo (Sudo for Windows) to registry by @matracey in [#9281](#9281) ### 🐛 Bug Fixes - **(cli)** retrieve token from github helper for `self-update` command by @sushichan044 in [#9259](#9259) - **(github)** scope auth headers to API URLs by @risu729 in [#9271](#9271) - **(vfox)** use github token for lua http requests by @jdx in [#9257](#9257) ### 📚 Documentation - add aube hero banner by @jdx in [#9265](#9265) - add en.dev footer by @jdx in [#9267](#9267) - implement landing page design by @jdx in [#9266](#9266) ### 📦️ Dependency Updates - lock file maintenance by @renovate[bot] in [#9268](#9268) ### 📦 Registry - add llama.cpp ([github:ggml-org/llama.cpp](https://github.com/ggml-org/llama.cpp)) by @igor-makarov in [#9282](#9282) - add kiro-cli by @shalk in [#9274](#9274) - add flux-operator & flux-operator-mcp by @monotek in [#8852](#8852) ### Chore - **(release)** add en.dev sponsor blurb to release notes by @jdx in [#9272](#9272) - bump communique to 1.0.1 by @jdx in [#9264](#9264) ### New Contributors - @monotek made their first contribution in [#8852](#8852) - @igor-makarov made their first contribution in [#9282](#9282) ## 📦 Aqua Registry Updates #### New Packages (2) - [`controlplaneio-fluxcd/flux-operator/flux-operator-mcp`](https://github.com/controlplaneio-fluxcd/flux-operator/flux-operator-mcp) - [`endevco/aube`](https://github.com/endevco/aube) #### Updated Packages (1) - [`graelo/pumas`](https://github.com/graelo/pumas)
## Summary - Appends a **Sponsor usage** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/publish-cli.yml`](.github/workflows/publish-cli.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for usage. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor usage > > usage is built by [@jdx](https://github.com/jdx) at [**en.dev**](https://en.dev) — an independent developer-tooling studio behind [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, and more. Work on usage is funded by sponsorships. > > If \`usage\` powers CLI specs, docs, or completions for a tool you maintain or use, please consider [sponsoring at en.dev](https://en.dev). Every sponsorship helps the project stay independent and moving. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: only adjusts the GitHub Actions release workflow to post-process release notes; no runtime or security-sensitive application code changes. > > **Overview** > After `communique generate` runs in the `enhance-release` job, the workflow now *edits the GitHub Release body* to append a **“Sponsor usage”** section. > > This is implemented by fetching the current release body via `gh release view`, concatenating the sponsor blurb, and updating the release with `gh release edit --notes-file`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit d1de688. 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) <[email protected]>
## Summary - Appends a **Sponsor pitchfork** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release-plz.yml`](.github/workflows/release-plz.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for pitchfork. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor pitchfork > > pitchfork is built by [@jdx](https://github.com/jdx) at [**en.dev**](https://en.dev) — an independent studio shipping developer tools like [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, pitchfork, and more. Development is sustained by sponsorships. > > If pitchfork has a place in your dev workflow, please consider [sponsoring at en.dev](https://en.dev). Individual and company sponsorships are what keep the project healthy and moving forward. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk workflow-only change that edits GitHub Release bodies via `gh release edit`; main risk is malformed/duplicated release notes if the script or `gh` call fails. > > **Overview** > After `communique generate` in the `enhance-release` job, the workflow now fetches the current release body for the new tag and re-edits the GitHub Release to append a **“Sponsor pitchfork”** section with en.dev sponsorship links. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 03c5d49. 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) <[email protected]>
## Summary - Appends a **Sponsor aube** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release-plz.yml`](.github/workflows/release-plz.yml). - The blurb explains that aube is funded by sponsors at [en.dev](https://en.dev) and links to other en.dev projects — consistent with [mise#9272](jdx/mise#9272). ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor aube > > aube is part of [**en.dev**](https://en.dev) — an independent developer-tooling studio run by [@jdx](https://github.com/jdx), also behind [mise](https://mise.jdx.dev/). Work on aube is funded entirely by sponsors. > > If aube is saving your team install time or CI minutes, please consider [sponsoring at en.dev](https://en.dev). Individual and company sponsorships are what keep the project fast, free, and independent. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [x] Simulated the heredoc locally to confirm YAML indentation strips cleanly and bash terminates the heredoc correctly - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: only adjusts the GitHub Actions `enhance-release` job to post-process release notes via `gh release edit`, with no changes to build, publishing, or runtime behavior. > > **Overview** > After `communique generate` runs in the `enhance-release` workflow, the release job now **appends an en.dev “Sponsor aube” section** to the existing GitHub Release body. > > This is implemented by fetching the current release notes (`gh release view`), concatenating a fixed markdown blurb, and updating the release via `gh release edit --notes-file`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit e0d909f. 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) <[email protected]>
## Summary - Appends a **Sponsor communique** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release-plz.yml`](.github/workflows/release-plz.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for communique. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor communique > > communique is developed by [@jdx](https://github.com/jdx) at [**en.dev**](https://en.dev), an independent studio behind developer tools like [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, and more. Ongoing work on communique is funded by sponsorships. > > If communique is drafting your release notes or changelogs, please consider [sponsoring at en.dev](https://en.dev). Every sponsor — individual or company — helps keep the project independent and actively maintained. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Low code risk, but it changes release automation to rewrite GitHub release bodies; mistakes could overwrite or misformat published release notes for new tags. > > **Overview** > After `communique generate` runs in the `enhance-release` GitHub Actions job, the workflow now fetches the current GitHub release body for the new tag, appends a **“Sponsor communique”** section, and updates the release notes via `gh release edit`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit ab79012. 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) <[email protected]>
## Summary - Appends a **Sponsor hk** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release.yml`](.github/workflows/release.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for hk. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor hk > > hk is developed by [@jdx](https://github.com/jdx) at [**en.dev**](https://en.dev) — a small independent studio behind developer tools like [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, and more. Work on hk is funded by sponsorships. > > If hk has sped up your pre-commit loop or made linting feel less painful, please consider [sponsoring at en.dev](https://en.dev). Sponsorships are what keep hk moving and the project independent. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Low Risk** > Low risk: workflow-only change that appends static text to GitHub Release bodies, with minimal impact beyond requiring `gh` to be able to view/edit the release via `GITHUB_TOKEN`. > > **Overview** > Updates the `enhance-release` GitHub Actions job to append a static **“Sponsor hk”** section to the end of each GitHub Release body after `communique generate` runs. > > This is done by fetching the current release notes via `gh release view`, concatenating the sponsor blurb, and writing the combined content back with `gh release edit`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 7b76436. 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) <[email protected]>
## Summary - Appends a **Sponsor fnox** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release.yml`](.github/workflows/release.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for fnox. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor fnox > > fnox is maintained by [@jdx](https://github.com/jdx) under [**en.dev**](https://en.dev) — a small independent studio building developer tooling like [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, and more. Keeping fnox secure, maintained, and free is funded by sponsors. > > If fnox is handling secrets or config for you or your team, please consider [sponsoring at en.dev](https://en.dev). Sponsorships are what let fnox stay independent and the project keep moving. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
## Summary - Appends a **Sponsor fnox** section to every GitHub Release body, run after `communique generate` in the `enhance-release` job in [`.github/workflows/release.yml`](.github/workflows/release.yml). - Same pattern as [mise#9272](jdx/mise#9272), adapted for fnox. ## What it looks like Rendered at the bottom of each release body: > ## 💚 Sponsor fnox > > fnox is maintained by [@jdx](https://github.com/jdx) under [**en.dev**](https://en.dev) — a small independent studio building developer tooling like [mise](https://mise.jdx.dev/), [aube](https://aube.en.dev/), hk, and more. Keeping fnox secure, maintained, and free is funded by sponsors. > > If fnox is handling secrets or config for you or your team, please consider [sponsoring at en.dev](https://en.dev). Sponsorships are what let fnox stay independent and the project keep moving. ## Test plan - [x] \`actionlint\` + \`yamllint\` pass on the modified workflow - [ ] Next tagged release produces a GitHub Release whose body ends with the sponsor section 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 (1M context) <[email protected]> Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>


Summary
Generate release notesstep in.github/workflows/release.ymlafter both code paths — thecommuniqueoutput and thegit-clifffallback — so the blurb shows up regardless of which produced the notes.What it looks like
Rendered at the bottom of each release body:
Test plan
actionlint .github/workflows/release.ymlpassesyamllint .github/workflows/release.ymlpasses🤖 Generated with Claude Code