Skip to content

Build the Windows zip at normal compression so the release job finishes - #57

Merged
iLevyTate merged 1 commit into
mainfrom
claude/gallant-babbage-mlfl4c
Oct 31, 2026
Merged

iLevyTate merged 1 commit into
mainfrom
claude/gallant-babbage-mlfl4c

Conversation

@iLevyTate

Copy link
Copy Markdown
Owner

Summary

  • The v5.1.0 Windows x64 release job was cancelled at its 45-minute limit while still writing StratoSortStack-5.1.0-win-x64.zip (run). For a zip, the top-level compression: maximum makes electron-builder run 7-Zip with -mx=9 -mfb=258 -mpass=15, which is 15-pass Deflate over the CUDA libraries.
  • electron-builder.json now sets win.compression: "normal", so the zip is built at -mx=7. The NSIS app archive is 7z at -mx=9 at either level, so the installer is unchanged. The arm64 leg builds only NSIS.
  • release.yml gains an x64-only step that applies the same setting at build time when the checked-out config doesn't have it yet. Tag v5.1.0 already points at the old config and the tag workflow won't move a tag, so this step lets the existing tag build. For later tags it does nothing.

Scope

  • Area(s): Windows packaging, release workflow
  • Risk Level: low. The zip is somewhat larger than at maximum, the installer's archive settings are identical, and no app code changes.
  • Breaking Changes: none

Type of Change

  • Bug fix
  • Enhancement
  • New feature
  • Refactor
  • Documentation update
  • Breaking change

Test Plan

Automated

  • npm run format:check (Prettier on the three changed files)
  • npm run lint (ESLint on the changed test)
  • npm test: electron-builder-config, verifyElectronFusesConfig and settingsImportParser (57 tests), plus verify:electron-fuses-config
  • Additional tests added/updated when behavior changed

The new tests call electron-builder's own compute7zCompressArgs. One checks that the Windows zip no longer gets -mpass=15. That test fails against the v5.1.0 config and passes now. The other checks that the 7z settings for the NSIS archive match what maximum produced.

Manual QA

  • Manual checklist completed (see docs/TESTING.md)
  • Not applicable (explain below)

Manual QA notes:

  • I ran the new workflow step against the v5.1.0 copy of electron-builder.json. It sets win.compression to normal, a second run leaves the file alone, and the result matches the committed config exactly.
  • The real check is the re-run of release.yml on v5.1.0 after this merges.

Checklist

  • I scoped this PR to one logical change
  • I self-reviewed code and naming for clarity
  • I updated docs/config references where needed
  • I called out follow-up work or known limitations: the macOS x64 leg of the same release failed separately, when Apple's CloudKit server dropped the connection during stapling (NSURLErrorDomain -1005). That needs a re-run, not a code change.

Generated by Claude Code

The top-level `compression: maximum` makes electron-builder build a zip with
15-pass Deflate (-mx=9 -mfb=258 -mpass=15). On the x64 CUDA libraries that
ran the v5.1.0 Windows release job past its 45-minute limit while it was
still writing the zip. Setting win.compression to normal builds the zip at
-mx=7; the NSIS app archive is 7z at -mx=9 either way, so the installer is
unchanged.

release.yml applies the same setting at build time for tags cut before this
change (v5.1.0) and is a no-op after it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5Uo5hC58DRSh1qB489Sos
@iLevyTate
iLevyTate merged commit 683ff02 into main Oct 31, 2026
10 checks passed
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