Qualify stable publication for Windows Shipping packages - #571
Conversation
…n and fail-closed smoke checks
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c86cc49cb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
⏳ CodeQL Report PendingThe pull-request head changed. Results from earlier commits do not apply while the new head is being scanned. Current PR head: |
Stable publication currently packages ordinary Debug/Release builds despite stable-v1 requiring the authoritative Windows Shipping profile. This change selects only Windows MinSizeRel Shipping artifacts for versioned releases and validates tests in a separate Release tree.
The stable BOM requires the ten declared executables and FPS module while excluding services outside the profile. Publication requires the exact ZIP, NSIS, and WiX Shipping packages. Nightly package selection is preserved. Windows native package commands now propagate each failure immediately.
Readiness and exact-source gates remain enforced. BLD-100 and REL-100 are in progress and still block release: hosted packaging, reproducibility, symbols, signing, and qualification evidence remain outstanding.
Validation: 50 workflow tests, 24 package tests, existing CMake sidecar tests, YAML/readiness validation, full documentation generation, and independent source review passed. Hosted Windows packaging is pending.
Stacked on #569 so the release changes can be reviewed separately.
Source version contract and CI regression follow-up
Commit
29480a88a6c23e94fb544554527434f25d3ca0d7requires stable tag, single CMake default, and exactly one matching versioned changelog heading to agree before release outputs are emitted. Nightly remains unchanged; the current Unreleased-only changelog intentionally blocks stable publication.Fixed the stale loop-text assertion exposed by CI run 34073505066 with executed asset collection tests: all five README downloads are produced with correct content, and each missing input rejects publication before the asset inventory is written. Existing stable collection exclusion tests remain in place.
Validation: 52 workflow tests, 68 download-counter tests, readiness/handoff validation, and full documentation regeneration passed. Version changes and alias regression received independent review. No readiness status was promoted; native installer lifecycle, Windows 11 qualification, signing, and remaining stable gates remain open.
Runtime installer payload prerequisite
Commit
a85434d7cedcaf7e72a458a92df44d2e8b6c2d6eintroduces an explicit runtime-only layout. It validates all configured game modules against a trusted external build inventory and canonical checkout SDK ABI, while retaining required executable/content and module schema/hash/ABI/help/version checks. The workflow stages only runtime/tools/samples and validates that fresh tree before CPack; diagnostics are retained. All six existing full staged/extracted SDK validator sites remain required.Independent verification: original hostile module fixtures plus 14 runtime cases, 53 workflow tests, 24 extracted-package tests, 19 release recovery tests, 76 exact-source gate tests, and 11 privilege boundary tests passed. Full documentation regeneration and readiness/handoff checks passed. Positive POSIX fixture executables test orchestration only. Native MSI install/uninstall, Windows 11 qualification, signing, and upgrade/rollback are still outstanding.
Native MSI lifecycle qualification gate
Commit
270e9b0516ae8dd8f9ccd2aa6072cc284ca04769adds actual MSI qualification to the existing Windows Shipping CI job using its already-built MinSizeRel tree, and to stable publication before artifact upload. No extra engine build or release-readiness bypass is introduced.The gate verifies filename/database identity and immutable MSI bytes, rejects current/related installed products, installs into a fresh runner-owned directory, validates the installed runtime, runs installed FPS for five headless frames with positive module-ready evidence, and uninstalls in finally. Original failures, uninstall failures, registration residue, and leftover install paths fail the job. Diagnostics are retained separately from build-matrix evidence; no recursive cleanup conceals defects.
Validation: 19 lifecycle scenarios, three package-selection negatives, a real subprocess-wrapper test, 55 workflow tests, and 24 extracted-package tests passed locally. Script and CI integration received independent review. Required docs/readiness/handoff checks passed. Native Windows execution is pending CI; this does not certify Windows 11, signing, interactive play, upgrades, rollback, or the whole release.
The repository's CLAUDE.md also records the user's asset-work instruction: use Blender for creation, repair, and export, preserving editable sources and validating exports through the engine.
Blender static-content interoperability checkpoint
Head
8d81204daa3b265a6d757f6b42cb19f543f4e3c9preserves an actual Blender 4.0.2 authored.blend, GLB, authoring script, repository-license attribution, and SHA-256 provenance. The real production glTF loader now verifies translated axis-converted bounds, all six faces' normals and geometric-corner UV associations, index bounds, and triangle winding/area. Nine focused production-loader tests passed with 404 assertions; independent root compilation and execution passed. Winding, UV-association, and axis mutations were rejected. An independent Blender regeneration produced identical GLB bytes. Full documentation and inventories regenerated, readiness checks passed, and independent review found no blockers. Exact reviewed/published tree:577616f389523057c1d1f8493cdb6fe2fdc859f2.This adds CPU static-geometry evidence only. ENG-220 remains open: D3D11 rendering, animation/skinning, scene hierarchy, materials, and installed-package qualification are not established by this fixture. Required checks must pass on this exact head before merge.