Skip to content

Bump Nuitka timeout to 90 min; restore full PySide6 bundling#5

Merged
JE-Chen merged 2 commits into
mainfrom
dev
May 16, 2026
Merged

Bump Nuitka timeout to 90 min; restore full PySide6 bundling#5
JE-Chen merged 2 commits into
mainfrom
dev

Conversation

@JE-Chen
Copy link
Copy Markdown
Member

@JE-Chen JE-Chen commented May 16, 2026

Summary

Two-commit follow-up to PR #4 (whose Nuitka build hit the 45-min timeout cap on a cold runner, leaving `v0.1.1` / `v0.1.2` stuck as drafts):

  • `ba28953` — Bump `timeout-minutes` from 45 → 90. PySide6 adds a huge C++ link step that cold-builds at ~50-70 min on a fresh `windows-latest`; cache hits stay at 5-10 min. Also drops the redundant `--include-package=PySide6` / `--include-package-data=PySide6` (the `--enable-plugin=pyside6` already does both — stacking them doubled compile time).
  • `0515b07` — Restore full PySide6 bundling: the pyside6 plugin's default behaviour ships QML, translations, and resources, which is the right call for forward-compat with the Deck tab landing in a future PR.

Test plan

  • CI matrix passes
  • On merge: `bump-version` reads `0.1.2` from `origin/main`'s `pyproject.toml` → bumps to `0.1.3` → `publish-pypi` uploads `0.1.3` (PyPI already has 0.1.1 and 0.1.2 from PR Auto-bump on main + Windows-only Nuitka + PySide6 desktop GUI #2's partial successes) → Nuitka build completes within 90 min → `.exe` + `.sha256` attach to the draft → `publish-release` unmarks the draft → `v0.1.3` shows up in the repo sidebar's Releases widget

JE-Chen added 2 commits May 17, 2026 01:33
The 45 min timeout was set when the bundle was CLI-only. Adding
PySide6 to the bundle made the cold build run ~70 min on a fresh
runner because Qt's C++ link step is huge. The matrix job hit the
timeout and aborted the whole release pipeline (publish-release
never ran -> draft stayed unpublished -> Releases sidebar empty).

Two fixes:

1. Bump timeout-minutes from 45 to 90. Cold PySide6 builds run
   50-70 min; warm builds with cache stay around 5-10 min so the
   higher cap is rarely paid in practice.

2. Drop --include-package=PySide6 and --include-package-data=PySide6.
   --enable-plugin=pyside6 already handles both. Stacking the three
   together caused redundant scanning that roughly doubled compile
   time.

3. Add --noinclude-data-files for PySide6/qml, PySide6/translations,
   PySide6/resources. We use QtWidgets only (no QML, no QtQuick3D),
   so the QML tree is dead weight - Nuitka was emitting hundreds of
   'Including QML file ... unlikely to work' warnings, all for code
   the GUI never touches. Dropping translations and resources too
   since the UI ships its own en/zh-tw label table.
Reverts the QML / translations / resources exclusions added in the
previous commit. The Deck tab planned for the next iteration will
likely pull in QtQuick / rich-text features that the current
QtWidgets-only Search + Settings tabs do not need, and trimming the
bundle now would mean stitching them back in later. The size hit
on a single Windows .exe is acceptable; the user explicitly said
shipping the full PySide6 tree is fine.

The 90-min timeout from the previous commit stays - cold PySide6
builds still need that headroom even without the noinclude trimming
(the trimming saved maybe 10-15 min, not 45).
@JE-Chen JE-Chen merged commit 1a00433 into main May 16, 2026
12 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.

1 participant