mirror of
https://github.com/logos-co/logos-test-modules.git
synced 2026-08-27 10:11:12 +00:00
nix-bundle-lgx enforces an icon contract for `type: ui_qml`: the manifest must
name an icon, resolvable at <module>/src/<rel> or <module>/<rel>, and the file
must be a real PNG measuring exactly 256x256 read straight out of IHDR. Both
UI fixtures declared "icon": null, so packaging failed at the buildPhase with
ERROR: metadata.json is missing 'icon'.
ui_qml packages must ship a 256x256 PNG icon.
That breaks .lgx and .install for test_fullapi_ui and test_fullapi_ui_qml.
Because consumers fetch this repo's master live rather than through their own
lock, the failure surfaces in OTHER repos' CI: logos-basecamp#337 shows it as
8 red doctests, of which only 3 are the real build failure and 5 are UI
assertions cascading from modules that were never staged.
These are test fixtures, so the icons are generated placeholders rather than
artwork — a filled ring for the C++-backend variant and a hollow diamond for
the QML-only one, deliberately distinguishable so a tile mix-up is visible in
a screenshot. Written with zlib+struct rather than an image library, matching
the validator's own reason for parsing IHDR by hand: it keeps an image
dependency out of the closure.
Verified on aarch64-darwin: .lgx and .install-portable build for both modules,
and the package carries assets/icon.png at the root (256x256, variant-
independent per manifest 0.4.0) with the manifest pointing at it.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>