Skip to content

fix: Linux NVIDIA tarball exceeds GitHub's 2 GiB asset limit - #222

Merged
thcp merged 1 commit into
mainfrom
fix/linux-nvidia-asset-size
Jun 24, 2026
Merged

fix: Linux NVIDIA tarball exceeds GitHub's 2 GiB asset limit#222
thcp merged 1 commit into
mainfrom
fix/linux-nvidia-asset-size

Conversation

@thcp

@thcp thcp commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Problem

The Linux Release job built both variants successfully but failed at upload:

Validation Failed: ReleaseAsset size must be less than 2147483648

StemDeck-Linux-x64.NVIDIA.tar.gz exceeds GitHub's 2 GiB per-asset release limit.

Cause — a wrong assumption in the original NVIDIA design

We baked the project's default torch into the NVIDIA variant, assuming it mirrored the Windows NVIDIA package. But:

  • On Linux, the default PyPI torch wheel bundles the full CUDA runtime (~2.5 GB).
  • On Windows, the default wheel is CPU-only (that's why the Windows NVIDIA zip is only ~243 MB).

So the Windows NVIDIA package never baked CUDA — it ships CPU torch and downloads the CUDA wheel at first run via the desktop shell's install_cuda_torch (already cfg(not(macos)), so it covers Linux). Baking CUDA on Linux is fundamentally incompatible with GitHub releases.

Fix

Bake the small CPU torch in both variants. The NVIDIA variant differs only by omitting the cpu-only marker, so on first launch the shell detects the GPU and downloads the matching CUDA wheel — genuinely mirroring Windows. Both tarballs now stay well under 2 GiB.

  • make-portable.sh: always force the CPU torch wheel; marker stays CPU-only-conditional.
  • README-LINUX.txt: NVIDIA section now notes CUDA is downloaded on first run (needs internet + disk).

Validated

The failed run proved the rest of the pipeline works end-to-end: version step (post-#221), CPU build, NVIDIA build, and ClamAV scan all passed on the wsl2 runner — only the oversized upload failed.

🤖 Generated with Claude Code

The Linux NVIDIA tarball baked the full CUDA torch wheel, producing an
asset >2 GiB that GitHub release uploads reject (size must be < 2147483648).

On Linux the default PyPI torch wheel bundles the CUDA runtime (~2.5 GB),
unlike Windows where the default wheel is CPU-only. The Windows NVIDIA
package therefore never baked CUDA -- it ships CPU torch and downloads the
CUDA wheel at first run via the desktop shell (install_cuda_torch, which is
cfg(not(macos)) and already covers Linux). Mirror that on Linux: bake the
small CPU torch in both variants; the NVIDIA variant differs only by
omitting the cpu-only marker, so the shell detects the GPU and downloads
CUDA on first launch. Keeps both tarballs well under the 2 GiB limit.
@thcp
thcp merged commit 421f2b3 into main Jun 24, 2026
8 checks passed
@thcp
thcp deleted the fix/linux-nvidia-asset-size branch June 24, 2026 18:17
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