build(windows): enforce onefile zstd compression and size gate #154

Merged
ValleyGeek merged 1 commit from 0.4.1/windows-onefile-compression into main 2026-08-12 05:58:42 +00:00
Member

Summary

Windows release builds grew from ~61 MiB (0.3.5) to ~263 MiB (0.3.6+) without an application-code change: Nuitka 4.x no longer installs zstandard by default, so --onefile can succeed with an uncompressed payload.

This PR hardens scripts/manual-build-windows.ps1 so that regression cannot ship again:

  • Install nuitka[onefile] (pulls zstandard) with --upgrade
  • Preflight import zstandard before the long Nuitka compile
  • Fail verification if the .exe is outside 40–120 MiB (uncompressed payloads land near ~260 MiB)
  • Invalidate the CI packaging venv fingerprint when packaging deps/gates change

No VERSION bump — scripts/docs/tests only (not compiled inputs).

Test plan

  • pytest tests/test_pr14_packaging.py tests/test_release_build_needed.py
  • Windows CI release job: compressor preflight passes; produced .exe within 40–120 MiB
  • Confirm next Windows release asset is back near historical ~60–80 MiB compressed size
## Summary Windows release builds grew from ~61 MiB (0.3.5) to ~263 MiB (0.3.6+) without an application-code change: Nuitka 4.x no longer installs `zstandard` by default, so `--onefile` can succeed with an **uncompressed** payload. This PR hardens `scripts/manual-build-windows.ps1` so that regression cannot ship again: - Install `nuitka[onefile]` (pulls `zstandard`) with `--upgrade` - Preflight `import zstandard` before the long Nuitka compile - Fail verification if the `.exe` is outside **40–120 MiB** (uncompressed payloads land near ~260 MiB) - Invalidate the CI packaging venv fingerprint when packaging deps/gates change **No `VERSION` bump** — scripts/docs/tests only (not compiled inputs). ## Test plan - [x] `pytest tests/test_pr14_packaging.py tests/test_release_build_needed.py` - [ ] Windows CI release job: compressor preflight passes; produced `.exe` within 40–120 MiB - [ ] Confirm next Windows release asset is back near historical ~60–80 MiB compressed size
build(windows): enforce onefile zstd compression and size gate
Some checks failed
CI / lint (push) Successful in 20s
CI / test (push) Successful in 3m20s
CI / appimage (push) Failing after 16s
CI / build-appimage (push) Failing after 0s
CI / build-windows-exe (push) Has been cancelled
CI / windows-exe (push) Has been cancelled
62ce7dada3
Install nuitka[onefile] so zstandard is present, preflight the compressor
before Nuitka runs, and fail verification when the exe exceeds 120 MiB
(uncompressed payloads are ~260 MiB). Prevents shipping the ~200 MB jump
seen from 0.3.6 onward when compression silently dropped out.
ValleyGeek deleted branch 0.4.1/windows-onefile-compression 2026-08-12 05:58:43 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai-collab/bulk-image-organizer!154
No description provided.