Add renderer and package readiness validation gates

This commit is contained in:
2026-06-15 19:20:56 +02:00
parent 68617e8bc4
commit f78fc3076c
23 changed files with 2350 additions and 389 deletions

View File

@@ -203,18 +203,42 @@ powershell -ExecutionPolicy Bypass -File scripts\automation\apple-remote-build.p
target before reporting the same readiness matrix. `package-smoke.ps1
-AndroidNativeChecks` also runs the retained Android standard `native-lib`
build and Quest/Focus configure helper for selected Android package kinds,
then reports those native results beside the APK blocker matrix.
then reports those native results beside the APK readiness matrix. Both
wrappers now classify each platform gate as `validated`, `compile-only`, or
`blocked` based on local prerequisites and whether a real root CMake package
target exists.
`scripts/dev/check_package_smoke_readiness.py`, registered as
`panopainter_package_smoke_readiness_self_test`, verifies both wrappers keep
the same seven package kinds, blocked DEBT-0011 status, readiness-only mode,
the same seven package kinds, readiness status modes, readiness-only mode,
retained Android native-check prerequisite metadata, retained Linux/WebGL
CMake baseline metadata, and root CMake package validation target names.
- `scripts/dev/check_component_boundaries.py`, registered as
`panopainter_component_boundary_self_test`, checks pure component source files in
`pp_foundation`, `pp_assets`, `pp_paint`, `pp_document`, `pp_renderer_api`,
`pp_paint_renderer`, `pp_ui_core`, and `pp_app_core` for forbidden platform
SDK/backend includes, `App::I`/`Canvas::I` leakage, and disallowed `pp_*`
target dependencies before desktop-fast validation. Temporary allowed-platform
edges remain explicitly tracked by DEBT-0003 and DEBT-0008.
- `scripts/dev/check_renderer_conformance_matrix.py`, registered as
`panopainter_renderer_conformance_matrix_self_test`, verifies renderer conformance
tests are labeled with the shared `renderer-conformance` matrix profile.
- `scripts/dev/check_renderer_api_contract.py`, registered as
`panopainter_renderer_api_contract_self_test`, enforces backend-neutral boundary
rules for `pp_renderer_api` and `pp_paint_renderer`, including forbidden
backend symbols/includes in these components before renderer contract milestones.
- Root CMake exposes non-default package validation targets:
`panopainter_package_readiness`,
`panopainter_windows_app_package_smoke`,
`panopainter_windows_appx_package_readiness`,
`panopainter_apple_bundle_package_readiness`,
`panopainter_android_standard_native_package`,
`panopainter_android_standard_apk_package_readiness`,
`panopainter_android_quest_apk_package_readiness`,
`panopainter_android_focus_apk_package_readiness`,
`panopainter_android_vr_native_package_configure`, and
`panopainter_android_native_package_smoke`, and
`panopainter_linux_app_package_readiness`,
`panopainter_webgl_package_readiness`, and
`panopainter_linux_webgl_package_readiness`. These targets call the
automation scripts from CMake but do not convert APK/AppX/Linux/Apple/WebGL
package outputs to root CMake package targets yet.