diff --git a/.github/workflows/publish-unsigned-preview.yml b/.github/workflows/publish-unsigned-preview.yml index 5349d52..6dd58f3 100644 --- a/.github/workflows/publish-unsigned-preview.yml +++ b/.github/workflows/publish-unsigned-preview.yml @@ -7,6 +7,17 @@ on: paths: - .github/workflows/publish-unsigned-preview.yml workflow_dispatch: + inputs: + preview_tag: + description: New prerelease tag; an existing release is never overwritten + required: true + type: string + default: v0.5.0-beta.2 + preview_title: + description: Public prerelease title + required: true + type: string + default: Parlyn Engine v0.5.0 Beta 2 (unsigned) permissions: contents: write @@ -18,7 +29,8 @@ jobs: env: CSC_IDENTITY_AUTO_DISCOVERY: false GH_TOKEN: ${{ github.token }} - PREVIEW_TAG: v0.5.0-beta.1 + PREVIEW_TAG: ${{ inputs.preview_tag || 'v0.5.0-beta.2' }} + PREVIEW_TITLE: ${{ inputs.preview_title || 'Parlyn Engine v0.5.0 Beta 2 (unsigned)' }} steps: - name: Checkout @@ -56,22 +68,25 @@ jobs: shell: pwsh run: | @" - # Parlyn Engine v0.5.0 Beta 1 + # Parlyn Engine v0.5.0 Beta 2 - This is the first packaged Windows beta of Parlyn Engine. The editor - foundation is functional and tested, while the available feature set - remains intentionally limited during foundation-first development. + This unsigned Windows beta contains the completed automated Phase 1 + foundation candidate. It adds reliable atomic project persistence, + hardened Node and Undo/Redo invariants, visible editor errors, tighter + desktop trust boundaries and corrected packaged toolbar branding. **Important:** This beta is unsigned and may be blocked by Windows Smart App Control. It is published to document and validate the packaged application while Parlyn applies for trusted Open Source code signing. It must not be described as a trusted or signed release. - Free code signing provided by SignPath.io, certificate by SignPath Foundation. - The repository contains the reproducible build workflow, public code - signing policy and SHA-256 verification procedure. After SignPath - approval, this beta will be superseded by a verified signed build. + signing policy and SHA-256 verification procedure. Parlyn has applied + to the SignPath Foundation program; approval and certificate access + remain pending. This release is not SignPath-signed. + + Maintainer acceptance instructions: + https://github.com/WebCrew/Parlyn-Engine/blob/main/docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md "@ | Set-Content -LiteralPath release/PREVIEW-NOTES.md -Encoding utf8 - name: Publish GitHub pre-release @@ -85,7 +100,7 @@ jobs: gh release create "$env:PREVIEW_TAG" ` --repo "$env:GITHUB_REPOSITORY" ` --target "$env:GITHUB_SHA" ` - --title "Parlyn Engine v0.5.0 Beta 1 (unsigned)" ` + --title "$env:PREVIEW_TITLE" ` --notes-file release/PREVIEW-NOTES.md ` --prerelease ` "$($installer[0].FullName)" ` diff --git a/CHANGES.md b/CHANGES.md index 811299a..5a4c679 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -39,6 +39,8 @@ - Bounded loaded scenes to 10,000 nodes and 256 hierarchy levels. - Reworked plain-JSON validation to avoid recursive call-stack exhaustion. - Added automated Node hierarchy and Undo/Redo invariant checks. +- Added a repeatable Beta 2 maintainer acceptance checklist for the Phase 1 completion gate. +- Generalized the non-overwriting unsigned preview workflow for an explicit Beta 2 release. ## v0.5.0 — Transform Tools & Module Foundation diff --git a/README.md b/README.md index c6459e4..ee0ed3a 100644 --- a/README.md +++ b/README.md @@ -222,6 +222,9 @@ identity supplied through the controlled signing boundary. See [`docs/WINDOWS-DISTRIBUTION.md`](docs/WINDOWS-DISTRIBUTION.md) for signing, verification and the maintainer acceptance test. +The current Phase 1 acceptance candidate uses the repeatable +[`v0.5.0-beta.2 maintainer checklist`](docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md). + ### Code signing policy Parlyn has applied to the SignPath Foundation Open Source Code Signing program. diff --git a/docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md b/docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md new file mode 100644 index 0000000..58274b1 --- /dev/null +++ b/docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md @@ -0,0 +1,75 @@ +# Parlyn Engine v0.5.0 Beta 2 — Maintainer Acceptance + +This is the repeatable Phase 1 acceptance pass. Perform it on the published +`v0.5.0-beta.2` artifact, not on a development checkout or the older Beta 1. + +Smart App Control and normal Windows security settings remain enabled. This +preview is intentionally unsigned while the SignPath Foundation application is +pending; a successful functional test is not a claim of trusted signing. + +## Test record + +Record these values in Issue #23 after the pass: + +- date and Windows version; +- installer filename; +- SHA-256 shown by `Get-FileHash`; +- pass/fail for each section below; +- exact wording and screenshot for any failure. + +## 1. Download and integrity + +1. Download the installer and `SHA256SUMS.txt` from the Beta 2 prerelease. +2. In PowerShell, run: + + ```powershell + Get-FileHash "$env:USERPROFILE\Downloads\Parlyn-Engine-Setup-0.5.0-x64.exe" -Algorithm SHA256 + ``` + +3. Confirm the displayed hash matches `SHA256SUMS.txt`. + +## 2. Install and launch + +1. Install with the normal per-user setup. +2. Launch from the final installer page. +3. Close Parlyn and launch it once from the Start menu and once from the desktop shortcut. +4. Confirm the top button bar shows one intact Parlyn logo and no second broken `Parlyn Engine` fallback text. + +## 3. Project and persistence + +1. Create a project named `Parlyn Beta 2 Test` in a new empty parent folder. +2. Add one 2.5D Sprite and one 3D Mesh. +3. Rename both nodes and change their positions. +4. Save the scene, close Parlyn, reopen the project and confirm names and positions survived. +5. Open **World**, confirm the project world name and seed appear, then use **Save World**. +6. Open the bundled `samples/Parlyn-Test-Project` and confirm its hierarchy and imported asset appear. + +## 4. Hierarchy, transforms and history + +1. Select nodes through both Hierarchy and Viewport. +2. Move, rotate and scale the 3D Mesh with W, E and R. +3. Move and scale the 2.5D Sprite; confirm its 2.5D transform controls remain appropriate. +4. Undo at least three changes, then redo them in order. +5. Undo once, make a different change and confirm the old redo path is no longer available. + +## 5. Visible error feedback + +1. Create a plain text file containing `{ broken json` and give it a `.json` extension. +2. Use **Open Scene** and select that file. +3. Confirm Parlyn stays open and presents a visible `Scene open failed` dialog with an understandable invalid-JSON message. +4. Close the dialog and confirm normal editor interaction still works. + +## 6. Modules and regression + +1. Open **Modules**, enable and disable the Example Module and confirm its displayed state follows the action. +2. Orbit, pan and zoom the editor camera. +3. Add and delete another node, then undo and redo the deletion. +4. Save and reopen once more without a crash or console-visible failure affecting the UI. + +## 7. Uninstall preservation + +1. Close Parlyn and uninstall Beta 2 normally. +2. Confirm the separately created `Parlyn Beta 2 Test` project still exists with its files intact. + +Phase 1 passes only when every required section succeeds or a discovered defect +is fixed and the affected section is repeated against a new artifact. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index cdf83d3..6d6690a 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -41,7 +41,7 @@ Already present: Completion gate: -- complete a repeatable maintainer test pass and record the result. +- complete the repeatable `v0.5.0-beta.2` maintainer test pass and record the result in Issue #23. ## Phase 2 — Editor foundation diff --git a/docs/TESTING-v0.5.0.md b/docs/TESTING-v0.5.0.md index 8ac5c41..1abb343 100644 --- a/docs/TESTING-v0.5.0.md +++ b/docs/TESTING-v0.5.0.md @@ -1,5 +1,9 @@ # Parlyn Engine v0.5.0 Test Guide +For the Phase 1 release-candidate acceptance pass, use the shorter artifact-specific +[`MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md`](MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md) +and record the result in Issue #23. The guide below remains the detailed feature reference. + This test focuses on the two new foundations introduced in v0.5.0: viewport transform gizmos and the module lifecycle. ## Baseline regression diff --git a/docs/WINDOWS-DISTRIBUTION.md b/docs/WINDOWS-DISTRIBUTION.md index 2b371a6..ad09868 100644 --- a/docs/WINDOWS-DISTRIBUTION.md +++ b/docs/WINDOWS-DISTRIBUTION.md @@ -130,3 +130,8 @@ Smart App Control should remain enabled throughout the test. The packaged installer has passed the initial install-and-launch smoke test on the maintainer's Windows machine. Public trusted-signing acceptance remains pending separately from the resolved development-binary blocker. + +The full Phase 1 functional acceptance candidate is the unsigned +`v0.5.0-beta.2` prerelease. Its repeatable checklist is documented in +[`MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md`](MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md), +and the result is recorded in Issue #23 before Phase 1 can be marked complete. diff --git a/scripts/check.cjs b/scripts/check.cjs index 0e6e287..b1041bf 100644 --- a/scripts/check.cjs +++ b/scripts/check.cjs @@ -28,6 +28,7 @@ const required = [ 'docs/SMART-SYSTEMS.md', 'docs/AUTHENTICATION.md', 'docs/WINDOWS-DISTRIBUTION.md', + 'docs/MAINTAINER-ACCEPTANCE-v0.5.0-beta.2.md', 'build/icon.ico', '.github/workflows/windows-installer.yml', 'scripts/check-smart-systems.mjs',