linux builder: honor HOOKSHOT_JOBS before selecting workers #505

Merged
monsterlag merged 3 commits from fix/linux-gui-build-jobs into main 2026-11-08 09:55:19 +00:00
monsterlag commented 2026-11-08 07:09:13 +00:00 (Migrated from github.com)

Problem and behavior

Fixes #494. The Linux AppImage's builder chose its worker count using the legacy RX_JOBS/memory fallback, then passed explicit --jobs. That overrode the documented HOOKSHOT_JOBS setting even when the AppImage inherited it correctly.

Honor a positive HOOKSHOT_JOBS value before constructing the build command. Unset, empty and zero keep the exact existing toolchain.default_jobs(3.5) fallback, including RX_JOBS. Negative or nonnumeric values show a clear error before configuration writes, progress, process or thread startup. CLI behavior is unchanged. Document launching from the same terminal and distinguish build settings from the game's hookshot_env.txt.

Checks

  • Seven portable checks execute the actual AST-extracted Builder.build method and real production helper without importing Tk. They record the generated command, configuration writes, progress, process/thread calls and fallback argument. All seven pass on Windows; the original method failed the positive override and both invalid-input checks.
  • The fixture parses the full Linux GUI and compiles its actual build method; importing the helper compiles make_game.py. No Tk or GUI execution. Existing CLI source and the legacy toolchain remain unchanged.
  • Preserve all 47 upstream CI steps and add this test on Windows/Linux. Include only the already-proven #488 import-fixture dependency so unrelated Linux CI remains viable.

Limits

No SteamOS/AppImage GUI or real game/native build was run. All four hosted checks passed at a529984: Windows and Linux source checks, SPIR-V emission and AppImage packaging. Automatic worker selection and compiler memory policy are unchanged.

## Problem and behavior Fixes #494. The Linux AppImage's builder chose its worker count using the legacy `RX_JOBS`/memory fallback, then passed explicit `--jobs`. That overrode the documented `HOOKSHOT_JOBS` setting even when the AppImage inherited it correctly. Honor a positive `HOOKSHOT_JOBS` value before constructing the build command. Unset, empty and zero keep the exact existing `toolchain.default_jobs(3.5)` fallback, including `RX_JOBS`. Negative or nonnumeric values show a clear error before configuration writes, progress, process or thread startup. CLI behavior is unchanged. Document launching from the same terminal and distinguish build settings from the game's `hookshot_env.txt`. ## Checks - Seven portable checks execute the actual AST-extracted `Builder.build` method and real production helper without importing Tk. They record the generated command, configuration writes, progress, process/thread calls and fallback argument. All seven pass on Windows; the original method failed the positive override and both invalid-input checks. - The fixture parses the full Linux GUI and compiles its actual build method; importing the helper compiles `make_game.py`. No Tk or GUI execution. Existing CLI source and the legacy toolchain remain unchanged. - Preserve all 47 upstream CI steps and add this test on Windows/Linux. Include only the already-proven #488 import-fixture dependency so unrelated Linux CI remains viable. ## Limits No SteamOS/AppImage GUI or real game/native build was run. All four hosted checks passed at `a529984`: Windows and Linux source checks, SPIR-V emission and AppImage packaging. Automatic worker selection and compiler memory policy are unchanged.
Commenting is not possible because the repository is archived.
No description provided.