Skip to content

Release workflow: notes from the changelog, publish only when the three builds pass - #13

Merged
yossdotpro merged 2 commits into
masterfrom
claude/logo-design-proposals-rfnrdp
Sep 27, 2026
Merged

yossdotpro merged 2 commits into
masterfrom
claude/logo-design-proposals-rfnrdp

Conversation

@yossdotpro

Copy link
Copy Markdown
Owner

Why

The Electron release workflow has never passed in its current form (the last run, for v2.0.0-beta1, failed on Linux, macOS and Windows). On top of that, electron-builder creates the GitHub release named "2.0.0" with no notes, and the three builds race to create it. This gets the workflow ready to publish v2.0.0.

What changes

  • draft job: on a v* tag, creates the GitHub release as a draft before the builds. Its title is the CHANGELOG heading (v 2.0.0 - Release (September 27th, 2026)) and its notes are that section as written, plus a link to the changes since the previous tag, the same format as the Beta 1 release. scripts/release-notes.mjs extracts them and fails if the section is missing. Tags with a suffix (v2.0.0-beta1) become prereleases.
  • build jobs: they upload into that draft (electron-builder reuses a draft with the same tag).
  • publish job: publishes the draft only when all three builds pass. A failed build leaves it unpublished.
  • Pull requests that touch the desktop build run the same three builds with --publish never. This PR is the first of those runs.
  • Linux icon: it now comes from src-electron/assets/icon.png instead of being converted from the macOS .icns. That conversion crashed in app-builder's icns decoder. The app is also filed under Graphics.
  • AGENTS.md describes how to cut a release. The Tauri workflow (build.yml) is left as is, as legacy.

Checks

  • Locally: build:electron plus electron-builder --linux AppImage deb --publish never produce karbonized-2.0.0.AppImage and karbonized_2.0.0_amd64.deb. The asar holds dist, dist-electron and the unpacked mcp-stdio.cjs. Before the icon fix, the Linux build failed on the icon.
  • scripts/release-notes.mjs against the real CHANGELOG with v2.0.0, v2.0.0-beta3 and v2.0.0-rc, and it fails with a message for a version with no section.
  • macOS and Windows can only be built on their runners: see the checks of this PR.

🤖 Generated with Claude Code

https://claude.ai/code/session_014zuyuq6TL2CGNE68a1rzaX


Generated by Claude Code

…op build on PRs

The release workflow had never passed in its current form (the last run,
for v2.0.0-beta1, failed on all three systems), and electron-builder
creates the GitHub release named "2.0.0" with no notes, with the three
builds racing to create it.

- A `draft` job creates the release as a draft before the builds, titled
  with the CHANGELOG heading ("v 2.0.0 - Release (September 27th, 2026)")
  and with that section as its notes plus a link to the changes since the
  previous tag (scripts/release-notes.mjs, which fails when the section is
  missing). Tags with a suffix (v2.0.0-beta1) become prereleases.
- The builds upload into that draft, and a `publish` job publishes it only
  when the three builds pass.
- Pull requests that touch the desktop build run the same builds with
  `--publish never`.
- Linux takes its icon from src-electron/assets/icon.png instead of
  converting the macOS .icns, which failed in app-builder's icns decoder,
  and is filed under Graphics.

AGENTS.md describes how to cut a release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014zuyuq6TL2CGNE68a1rzaX
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Deploying karbonized with  Cloudflare Pages  Cloudflare Pages

Latest commit: 101c7bb
Status:🚫  Build failed.

View logs

@vercel

vercel Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
karbonized Ready Ready Preview Sep 27, 2026 9:09pm UTC

The macOS build ran out of memory in the Vite build of the renderer: Node
gets a ~2 GB heap on those runners and the build needs more. Reproduced
locally with --max-old-space-size=2048 (heap out of memory) and passes with
4096.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014zuyuq6TL2CGNE68a1rzaX

Copy link
Copy Markdown
Owner Author

Cloudflare Pages fails here, but not because of this PR. It failed the same way on #11 (already merged), and in both cases it finishes in under a second, before any build runs. That points to the Cloudflare Pages project settings, not the code. This PR does not touch the web build, and Lint, test and build and the Vercel preview (production) pass.

I can't see the Cloudflare logs or re-run the check from here. No fix exists in the repo yet; the cause is in the Pages project on the Cloudflare dashboard (the View logs link on the check). If Pages is no longer used, disconnecting the project removes the check.


Generated by Claude Code

@yossdotpro
yossdotpro merged commit 074c038 into master Sep 27, 2026
8 of 9 checks passed

This branch was successfully deployed

1 active deployment
Preview — 101c7bb1 Deployed Sep 27, 2026 by vercel[bot]
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.

2 participants