fix(packaging): include the prompt encoder runtime dependency #1598

Merged
monsterlag merged 1 commit from fix/prompt-archspec-dependency into main 2026-11-10 11:25:19 +00:00
monsterlag commented 2026-11-10 10:30:32 +00:00 (Migrated from github.com)

Hookshot Builder's Python part can contain astc-encoder-py==0.1.12 without its declared archspec dependency. Importing the encoder then raises ModuleNotFoundError, so generated controller prompts are unavailable; a game build can fall back to the Switch icons.

Pin archspec==0.2.7 in the shared prompt requirements. The Windows package updater now detects that missing pin while retaining --no-deps. Linux also consumes the exact pin, and the requirements hash automatically invalidates its Python dependency cache. The verified wheel is pure Python (py3-none-any), satisfies the encoder's archspec>=0.2 requirement, and declares no further runtime dependencies.

Validation:

  • A new standard-library regression uses authored Python-part ZIPs and the real package probe/extractor, with pip and networking mocked. The old requirements incorrectly reuse the incomplete part; the fixed requirements request only pinned archspec with --no-deps. A complete part is reused without extraction or pip.
  • Both regression cases pass on Windows and Linux; Linux fixtures use /tmp.
  • The retained v2.0.12 import failure names archspec. Read-only isolated imports pass in the build agent's repaired Python with astc-encoder-py==0.1.12 and archspec==0.2.7; the downloaded wheel's metadata and SHA-256 were verified again without changing that environment.
  • Windows checks ran under the fixed 200 GiB reserve guard with 1 GiB estimated peak growth and more than 642 GiB free.
  • Fresh hosted CI on eb713584: Windows and Linux source checks, Windows Builder package/setup, Windows Vulkan back end, Linux AppImage, both lowering jobs, and workflow lint all pass. Release-asset upload jobs are skipped for PRs.

The complete source suite and AppImage build ran in hosted CI. A fresh Windows Python release part and gameplay were not run locally for this pin-only packaging correction. No public release bundle has been republished by this PR. No global installation, dependency-policy change, release-build modification, or game data is involved.

Hookshot Builder's Python part can contain `astc-encoder-py==0.1.12` without its declared `archspec` dependency. Importing the encoder then raises `ModuleNotFoundError`, so generated controller prompts are unavailable; a game build can fall back to the Switch icons. Pin `archspec==0.2.7` in the shared prompt requirements. The Windows package updater now detects that missing pin while retaining `--no-deps`. Linux also consumes the exact pin, and the requirements hash automatically invalidates its Python dependency cache. The verified wheel is pure Python (`py3-none-any`), satisfies the encoder's `archspec>=0.2` requirement, and declares no further runtime dependencies. Validation: - A new standard-library regression uses authored Python-part ZIPs and the real package probe/extractor, with pip and networking mocked. The old requirements incorrectly reuse the incomplete part; the fixed requirements request only pinned archspec with `--no-deps`. A complete part is reused without extraction or pip. - Both regression cases pass on Windows and Linux; Linux fixtures use `/tmp`. - The retained v2.0.12 import failure names `archspec`. Read-only isolated imports pass in the build agent's repaired Python with `astc-encoder-py==0.1.12` and `archspec==0.2.7`; the downloaded wheel's metadata and SHA-256 were verified again without changing that environment. - Windows checks ran under the fixed 200 GiB reserve guard with 1 GiB estimated peak growth and more than 642 GiB free. - Fresh hosted CI on `eb713584`: Windows and Linux source checks, Windows Builder package/setup, Windows Vulkan back end, Linux AppImage, both lowering jobs, and workflow lint all pass. Release-asset upload jobs are skipped for PRs. The complete source suite and AppImage build ran in hosted CI. A fresh Windows Python release part and gameplay were not run locally for this pin-only packaging correction. No public release bundle has been republished by this PR. No global installation, dependency-policy change, release-build modification, or game data is involved.
Commenting is not possible because the repository is archived.
No description provided.