Files
logos-test-modules/test-fullapi-ui-module/metadata.json
Dario LipicarandClaude Opus 5 e560679d80 fix(ui): ship the 256x256 icons that ui_qml packaging now requires (#45)
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>
2026-08-20 18:21:55 -03:00

32 lines
1.0 KiB
JSON

{
"name": "test_fullapi_ui",
"display_name": "Full API UI",
"version": "1.0.0",
"type": "ui_qml",
"interface": "universal",
"category": "testing",
"description": "Universal QML+Qt UI plugin that consumes the full_api surface of any provider/proxy via an interface dependency: a QtRO backend binds full_api to a runtime target, drives every method type, and subscribes to every event, surfacing results/events to QML so a headless UI doctest can assert them.",
"main": "test_fullapi_ui_plugin",
"icon": "icons/fullapi-ui.png",
"view": "qml/Main.qml",
"dependencies": ["test_fullapi_proxy"],
"interface_dependencies": [
{ "name": "full_api", "file": "interfaces/full_api.h", "impl_class": "IFullApi" }
],
"codegen": { "rep": "src/test_fullapi_ui.rep" },
"nix": {
"packages": {
"build": [],
"runtime": []
},
"external_libraries": [],
"cmake": {
"find_packages": [],
"extra_sources": [],
"extra_include_dirs": [],
"extra_link_libraries": []
}
}
}