Require released EveUnity package consumption
This commit is contained in:
parent
e39d3417b8
commit
a47648002e
5 changed files with 20 additions and 18 deletions
|
|
@ -51,6 +51,10 @@ advertisements and typed command/receipt documents are the boundary.
|
|||
movement, targeting, and fire command receipts.
|
||||
- EveUnity's clean `TestProject` owns generic scene and UI Toolkit package
|
||||
verification; ordinary runtime tests no longer open or mutate Aetheria.
|
||||
- EveUnity publishes immutable `0.1.0` Git package tags for surface, scene, and
|
||||
UI Toolkit. Its release-only consumer resolves those tags plus CultLib's
|
||||
assembled Unity package and passes 26 Unity EditMode tests without sibling
|
||||
package paths. Aetheria pins the same released sources.
|
||||
- EveUnity can start from one CultMesh rendezvous endpoint, discover a Verse,
|
||||
select an advertised `interactive-world` surface, and connect without
|
||||
configured Aetheria provider or surface identifiers. The Aetheria daemon
|
||||
|
|
@ -84,8 +88,6 @@ advertisements and typed command/receipt documents are the boundary.
|
|||
- Extract EveTui when its process lifecycle and release surface are stable.
|
||||
- Move Android Kotlin and iOS UIKit lowerers into runtime owner repos or retire
|
||||
them when Flutter is the intended native owner.
|
||||
- Tag and publish EveUnity UPM packages; prove installation from a released
|
||||
package rather than sibling source paths.
|
||||
- Tag EveFlutter releases and remove remaining incubation claims.
|
||||
|
||||
### Generic Game Lowering
|
||||
|
|
@ -93,8 +95,9 @@ advertisements and typed command/receipt documents are the boundary.
|
|||
- Route browser and remaining runtimes through Odin's aggregated provider
|
||||
discovery rather than local catalogs or sibling paths; Unity's direct
|
||||
CultMesh Verse discovery is the working reference.
|
||||
- Prove cold-start Unity play from published packages plus daemon
|
||||
advertisements, with no Aetheria checkout available to the client.
|
||||
- Extend the released-package consumer from EditMode lowering proof to
|
||||
cold-start PlayMode discovery against the separately running Aetheria daemon;
|
||||
the generic client must still have no Aetheria code or package path.
|
||||
- Expand world lowering only through generic surface contracts: entities,
|
||||
transforms, animation state, collision/navigation intent, cameras, effects,
|
||||
interaction prompts, and command boundaries.
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ try {
|
|||
--expect-runtime-witness electron-shell:eve.world-smoke:eve.world-smoke.surface:cold:pass `
|
||||
--expect-runtime-witness electron-shell:aetheria:aetheria.daemon.game:cold:pass `
|
||||
--expect-runtime-capture-probe tui:contract-artifact-present:json-grid:EveTui `
|
||||
--expect-capability-gap "split-target:EveUnity:EveUnity:proof:Tagged UPM release"
|
||||
--expect-capability-gap "split-target:EveUnity:EveUnity:proof:Unity PlayMode frame capture"
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "Conformance consumer smoke failed with exit code $LASTEXITCODE"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@ $requiredOwnerPaths = @(
|
|||
"packages\org.gamecult.eve.unity-scene\package.json",
|
||||
"packages\org.gamecult.eve.unity-scene\eve-runtime-capability.json",
|
||||
"scripts\pack-uitoolkit.ps1",
|
||||
"scripts\run-uitoolkit-tests.ps1"
|
||||
"scripts\run-uitoolkit-tests.ps1",
|
||||
"scripts\run-release-consumer-tests.ps1",
|
||||
"ReleaseConsumerProject\Packages\manifest.json",
|
||||
"ReleaseConsumerProject\Packages\packages-lock.json"
|
||||
)
|
||||
|
||||
foreach ($relativePath in $requiredOwnerPaths) {
|
||||
|
|
@ -24,9 +27,9 @@ foreach ($relativePath in $requiredOwnerPaths) {
|
|||
|
||||
$aetheriaManifest = Get-Content (Join-Path $AetheriaRoot "Packages\manifest.json") -Raw | ConvertFrom-Json
|
||||
$expectedDependencies = @{
|
||||
"org.gamecult.eve.surface" = "file:../../EveUnity/packages/org.gamecult.eve.surface"
|
||||
"org.gamecult.eve.unity-uitoolkit" = "file:../../EveUnity/packages/org.gamecult.eve.unity-uitoolkit"
|
||||
"org.gamecult.eve.unity-scene" = "file:../../EveUnity/packages/org.gamecult.eve.unity-scene"
|
||||
"org.gamecult.eve.surface" = "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.surface#eveunity-surface-v0.1.0"
|
||||
"org.gamecult.eve.unity-uitoolkit" = "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-uitoolkit#eveunity-uitoolkit-v0.1.0"
|
||||
"org.gamecult.eve.unity-scene" = "https://github.com/GameCult/EveUnity.git?path=/packages/org.gamecult.eve.unity-scene#eveunity-scene-v0.1.0"
|
||||
}
|
||||
|
||||
foreach ($entry in $expectedDependencies.GetEnumerator()) {
|
||||
|
|
@ -41,4 +44,4 @@ if ($LASTEXITCODE -ne 0) {
|
|||
throw "EveUnity UI Toolkit package smoke failed."
|
||||
}
|
||||
|
||||
Write-Host "EveUnity owns the Unity packages and Aetheria consumes them from the owner repo."
|
||||
Write-Host "EveUnity owns tagged Unity packages and Aetheria consumes their immutable releases."
|
||||
|
|
|
|||
|
|
@ -190,11 +190,9 @@ node $consumerScript $consumerExport `
|
|||
--expect-screenshot-metric unity-scene:aetheria-world:bounding-boxes:pending-capture `
|
||||
--expect-screenshot-metric electron-shell:aetheria-world:bounding-boxes:pending-capture `
|
||||
--expect-screenshot-metric tui:aetheria-world:bounding-boxes:terminal-grid-capture `
|
||||
--expect-runtime-lifecycle-status unity-uitoolkit:release:upm-package-artifact-smoke `
|
||||
--expect-runtime-lifecycle-status unity-uitoolkit:test:batchmode-editmode-tests-and-consumer-build-smoke `
|
||||
--expect-runtime-lifecycle-status unity-uitoolkit:release:tagged-upm-release `
|
||||
--expect-runtime-lifecycle-status unity-uitoolkit:test:released-package-editmode-batchmode `
|
||||
--expect-runtime-lifecycle-status unity-uitoolkit:capture:pending-editor-capture `
|
||||
--expect-runtime-lifecycle-pending "unity-uitoolkit:release:Tagged UPM release" `
|
||||
--expect-runtime-lifecycle-pending "unity-uitoolkit:test:Cut and publish the first tagged EveUnity UI Toolkit package release" `
|
||||
--expect-runtime-lifecycle-pending "unity-uitoolkit:capture:Unity batchmode or editor capture artifact" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:release:releaseContract.packageName:org.gamecult.eve.unity-uitoolkit" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:release:releaseContract.artifactKind:upm-package" `
|
||||
|
|
@ -234,10 +232,9 @@ node $consumerScript $consumerExport `
|
|||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.0.surfaceId:eve.world-smoke.surface" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.1.providerId:aetheria" `
|
||||
--expect-runtime-lifecycle-field "unity-uitoolkit:capture:captureContract.additionalProviderSurfaces.1.surfaceId:aetheria.daemon.editor" `
|
||||
--expect-runtime-lifecycle-status unity-scene:release:owner-repo-upm-artifact `
|
||||
--expect-runtime-lifecycle-status unity-scene:test:unity-scene-editmode-batchmode `
|
||||
--expect-runtime-lifecycle-status unity-scene:release:tagged-upm-release `
|
||||
--expect-runtime-lifecycle-status unity-scene:test:released-package-editmode-batchmode `
|
||||
--expect-runtime-lifecycle-status unity-scene:capture:partial-world-smoke-playmode-capture `
|
||||
--expect-runtime-lifecycle-pending "unity-scene:release:Cut and publish the first tagged EveUnity package release" `
|
||||
--expect-runtime-lifecycle-pending "unity-scene:capture:Attach the Aetheria daemon PlayMode PNG" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.packageName:org.gamecult.eve.unity-scene" `
|
||||
--expect-runtime-lifecycle-field "unity-scene:release:releaseContract.artifactKind:upm-package" `
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@ try {
|
|||
--expect-split-target-proof "EveUnity:Unity scene runtime is owned by EveUnity" `
|
||||
--expect-split-target-proof "EveUnity:Unity scene lifecycle is owned and tested from EveUnity" `
|
||||
--expect-split-target-proof "EveUnity:Aetheria daemon 3D ARPG world lowers through a generic EveUnity playable-world client" `
|
||||
--expect-split-target-blocker "EveUnity:Tagged UPM release" `
|
||||
--expect-split-target EveElectron `
|
||||
--expect-split-target-status EveElectron:graduated `
|
||||
--expect-split-target-proof "EveElectron:EveElectron owner repository publishes the generic runtime package" `
|
||||
|
|
|
|||
Loading…
Reference in a new issue