diff --git a/docs/modernization/build-inventory.md b/docs/modernization/build-inventory.md index 8be9146..3d268a1 100644 --- a/docs/modernization/build-inventory.md +++ b/docs/modernization/build-inventory.md @@ -124,13 +124,20 @@ Known local toolchain state: `pp_paint`, `pp_document`, `pp_renderer_api`, `pp_renderer_gl`, `pp_paint_renderer`, `pp_ui_core`, `pano_cli`, and their current headless test binaries, - including foundation binary-stream/event/logging/task queue coverage, PNG metadata and - decode, PPI header/layout/non-finite opacity and blend-mode rejection, settings document, document - snapshot/per-layer-frame/move/duration/face-pixel/PPI export coverage, - snapshot-embedded duplicate/invalid face-payload and selection-mask rejection, paint brush/final-blend/ - stroke-alpha-blend/stroke spacing/stroke stress/stroke-script coverage, - renderer shader descriptor and OpenGL capability coverage, UI - color parsing, and layout XML parse coverage. + including foundation binary-stream/event/logging/task queue coverage, image + metadata/decode/encode coverage, PPI header/layout/body coverage, settings + document coverage, brush-package path/header coverage, document + snapshot/frame/layer/history/PPI import-export coverage, paint + brush/final-blend/stroke-alpha-blend/stroke spacing/stroke stress/ + stroke-script coverage, renderer shader descriptor and OpenGL capability + coverage, UI color/layout/XML parse coverage, platform service coverage, and + the current `pp_app_core` automation surface for startup, file menus, + document session/open/import/export/animation/canvas/layer/resize/cloud/ + sharing/platform-I/O, brush-package import/export, brush UI, canvas tools and + hotkeys, history, grid, quick UI, main toolbar, Tools, About, preferences, + and app status planning. The PowerShell wrapper accepts repeated, array, or + comma-separated `-Presets`/`-Targets` values so scripted callers can narrow + the same matrix without accidentally passing a single combined target. - Root CMake exposes named `fuzz` and `stress` CTest presets. `fuzz` currently runs deterministic parser/serializer edge tests for binary streams, image metadata, PPI, stroke scripts, and layout XML; `stress` currently runs the diff --git a/docs/modernization/debt.md b/docs/modernization/debt.md index 338a676..d5a88a0 100644 --- a/docs/modernization/debt.md +++ b/docs/modernization/debt.md @@ -18,6 +18,13 @@ agent or engineer to remove them without reconstructing context from chat. ## Recent Reductions +- 2026-06-04: DEBT-0009 was narrowed. `platform-build.ps1` and + `platform-build.sh` now include the current headless component/test matrix, + including brush-package coverage and the app-core startup/file/document/ + brush/canvas/history/grid/toolbar/tools/about/preferences/status automation + tests, so Android root CMake validation no longer silently skips newly + extracted feature slices. Package targets remain open under DEBT-0009 and + DEBT-0011. - 2026-06-04: DEBT-0036 was narrowed again. Canvas stroke commit, thumbnail, and object-draw history paths now query saved blend state through tested `pp_renderer_gl` capability-state dispatch; CanvasLayer equirect diff --git a/docs/modernization/roadmap.md b/docs/modernization/roadmap.md index 898f623..9d6c0cb 100644 --- a/docs/modernization/roadmap.md +++ b/docs/modernization/roadmap.md @@ -1254,7 +1254,11 @@ for Windows VS 2026/default, Windows clang-cl ASan, Linux clang, Android standard x64/arm64, Android Quest arm64, Android Focus/Wave arm64, Emscripten/WebGL, macOS, iOS device, and iOS simulator. `platform-build` automation now builds the current headless component matrix, including -`pp_platform_api`, `pp_app_core`, app-core tests, and platform API tests. +`pp_platform_api`, `pp_app_core`, platform API tests, brush-package tests, and +the current app-core startup/file/document/brush/canvas/history/grid/toolbar/ +tools/about/preferences/status automation tests. The PowerShell wrapper also +normalizes comma-separated `-Presets` and `-Targets` values for reliable +machine-driven partial matrix checks. `package-smoke` now emits a structured package readiness matrix for Windows AppX, Android standard/Quest/Focus APKs, Apple bundles, and WebGL output, with blocked prerequisites tied to DEBT-0011. App/package entrypoints still need to @@ -2032,7 +2036,8 @@ Results: building remains blocked by DEBT-0011 until those targets are migrated to root CMake. - Android arm64 configured with NDK 29.0.14206865 through the platform-build - wrapper and compiled headless foundation/tool/test targets. + wrapper and compiled the refreshed headless component/test matrix, including + the current app-core feature-surface automation tests. - Desktop VR drawing now routes generic OpenGL scissor/depth/blend state, blend/depth state snapshots and restores, depth clears, active texture units, and fallback 2D texture unbinds through tested renderer GL backend dispatch; diff --git a/scripts/automation/platform-build.ps1 b/scripts/automation/platform-build.ps1 index 33eb2f0..9d6137d 100644 --- a/scripts/automation/platform-build.ps1 +++ b/scripts/automation/platform-build.ps1 @@ -19,6 +19,7 @@ param( "pp_foundation_parse_tests", "pp_foundation_task_queue_tests", "pp_foundation_trace_tests", + "pp_assets_brush_package_tests", "pp_assets_image_format_tests", "pp_assets_image_metadata_tests", "pp_assets_image_pixels_tests", @@ -39,19 +40,56 @@ param( "pp_ui_core_color_tests", "pp_ui_core_layout_value_tests", "pp_ui_core_layout_xml_tests", - "pp_app_core_document_route_tests", - "pp_app_core_document_export_tests", + "pp_app_core_about_menu_tests", + "pp_app_core_app_preferences_tests", + "pp_app_core_app_startup_tests", + "pp_app_core_app_status_tests", + "pp_app_core_brush_package_export_tests", + "pp_app_core_brush_package_import_tests", + "pp_app_core_brush_ui_tests", + "pp_app_core_canvas_hotkey_tests", + "pp_app_core_canvas_tool_ui_tests", + "pp_app_core_document_animation_tests", + "pp_app_core_document_canvas_tests", "pp_app_core_document_cloud_tests", + "pp_app_core_document_export_tests", + "pp_app_core_document_import_tests", + "pp_app_core_document_layer_tests", "pp_app_core_document_platform_io_tests", "pp_app_core_document_recording_tests", - "pp_app_core_app_preferences_tests", - "pp_app_core_app_status_tests", + "pp_app_core_document_resize_tests", + "pp_app_core_document_route_tests", "pp_app_core_document_sharing_tests", - "pp_app_core_document_session_tests" + "pp_app_core_document_session_tests", + "pp_app_core_file_menu_tests", + "pp_app_core_grid_ui_tests", + "pp_app_core_history_ui_tests", + "pp_app_core_main_toolbar_tests", + "pp_app_core_quick_ui_tests", + "pp_app_core_tools_menu_tests" ) ) $ErrorActionPreference = "Stop" + +function Expand-ArgumentList { + param([string[]]$Values) + + $expanded = @() + foreach ($value in $Values) { + foreach ($part in ($value -split ",")) { + $trimmed = $part.Trim() + if ($trimmed.Length -gt 0) { + $expanded += $trimmed + } + } + } + return $expanded +} + +$Presets = @(Expand-ArgumentList -Values $Presets) +$Targets = @(Expand-ArgumentList -Values $Targets) + $started = Get-Date $results = @() $overallExitCode = 0 diff --git a/scripts/automation/platform-build.sh b/scripts/automation/platform-build.sh index 76f55d2..3bd6e56 100644 --- a/scripts/automation/platform-build.sh +++ b/scripts/automation/platform-build.sh @@ -3,7 +3,7 @@ set -u preset="${1:-android-arm64}" shift || true -targets="${*:-pp_foundation pp_assets pp_paint pp_document pp_renderer_api pp_renderer_gl pp_paint_renderer pp_ui_core pp_platform_api pp_app_core pano_cli pp_foundation_binary_stream_tests pp_foundation_event_tests pp_foundation_log_tests pp_foundation_parse_tests pp_foundation_task_queue_tests pp_foundation_trace_tests pp_assets_image_format_tests pp_assets_image_metadata_tests pp_assets_image_pixels_tests pp_assets_ppi_header_tests pp_assets_settings_document_tests pp_paint_brush_tests pp_paint_blend_tests pp_paint_stroke_tests pp_paint_stroke_script_tests pp_document_tests pp_document_ppi_import_tests pp_document_ppi_export_tests pp_renderer_api_tests pp_renderer_gl_capabilities_tests pp_renderer_gl_command_plan_tests pp_paint_renderer_compositor_tests pp_platform_api_tests pp_ui_core_color_tests pp_ui_core_layout_value_tests pp_ui_core_layout_xml_tests pp_app_core_document_route_tests pp_app_core_document_export_tests pp_app_core_document_cloud_tests pp_app_core_document_platform_io_tests pp_app_core_document_recording_tests pp_app_core_app_preferences_tests pp_app_core_app_status_tests pp_app_core_document_sharing_tests pp_app_core_document_session_tests}" +targets="${*:-pp_foundation pp_assets pp_paint pp_document pp_renderer_api pp_renderer_gl pp_paint_renderer pp_ui_core pp_platform_api pp_app_core pano_cli pp_foundation_binary_stream_tests pp_foundation_event_tests pp_foundation_log_tests pp_foundation_parse_tests pp_foundation_task_queue_tests pp_foundation_trace_tests pp_assets_brush_package_tests pp_assets_image_format_tests pp_assets_image_metadata_tests pp_assets_image_pixels_tests pp_assets_ppi_header_tests pp_assets_settings_document_tests pp_paint_brush_tests pp_paint_blend_tests pp_paint_stroke_tests pp_paint_stroke_script_tests pp_document_tests pp_document_ppi_import_tests pp_document_ppi_export_tests pp_renderer_api_tests pp_renderer_gl_capabilities_tests pp_renderer_gl_command_plan_tests pp_paint_renderer_compositor_tests pp_platform_api_tests pp_ui_core_color_tests pp_ui_core_layout_value_tests pp_ui_core_layout_xml_tests pp_app_core_about_menu_tests pp_app_core_app_preferences_tests pp_app_core_app_startup_tests pp_app_core_app_status_tests pp_app_core_brush_package_export_tests pp_app_core_brush_package_import_tests pp_app_core_brush_ui_tests pp_app_core_canvas_hotkey_tests pp_app_core_canvas_tool_ui_tests pp_app_core_document_animation_tests pp_app_core_document_canvas_tests pp_app_core_document_cloud_tests pp_app_core_document_export_tests pp_app_core_document_import_tests pp_app_core_document_layer_tests pp_app_core_document_platform_io_tests pp_app_core_document_recording_tests pp_app_core_document_resize_tests pp_app_core_document_route_tests pp_app_core_document_sharing_tests pp_app_core_document_session_tests pp_app_core_file_menu_tests pp_app_core_grid_ui_tests pp_app_core_history_ui_tests pp_app_core_main_toolbar_tests pp_app_core_quick_ui_tests pp_app_core_tools_menu_tests}" start="$(date +%s)" cmake --preset "$preset"