Prove clean .NET Eve package onboarding
This commit is contained in:
parent
22bb9afaa4
commit
d4d24385d1
6 changed files with 41 additions and 12 deletions
|
|
@ -19,5 +19,5 @@ closure through UPM rather than NuGet restore.
|
|||
Install the Unity package from the immutable release tag:
|
||||
|
||||
```text
|
||||
https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.8
|
||||
https://github.com/GameCult/CultLib.git?path=/unity/org.gamecult.cultlib#cultlib-unity-v1.0.46
|
||||
```
|
||||
|
|
|
|||
|
|
@ -27,7 +27,8 @@ if (Test-Path -LiteralPath $outputRoot) {
|
|||
New-Item -ItemType Directory -Force -Path $outputRoot | Out-Null
|
||||
|
||||
foreach ($project in $projects) {
|
||||
dotnet pack (Join-Path $repoRoot $project) -c $Configuration -o $outputRoot
|
||||
dotnet pack (Join-Path $repoRoot $project) -c $Configuration -o $outputRoot `
|
||||
--nologo --verbosity quiet -p:NoWarn=1591%3BCS8632
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "NuGet pack failed for $project with exit code $LASTEXITCODE"
|
||||
}
|
||||
|
|
@ -82,7 +83,8 @@ Console.WriteLine(verse.Context.VerseId);
|
|||
"@
|
||||
[IO.File]::WriteAllText((Join-Path $smokeRoot "Consumer.csproj"), $projectDocument, [Text.UTF8Encoding]::new($false))
|
||||
[IO.File]::WriteAllText((Join-Path $smokeRoot "Program.cs"), $program, [Text.UTF8Encoding]::new($false))
|
||||
dotnet run --project (Join-Path $smokeRoot "Consumer.csproj") -c Release
|
||||
dotnet run --project (Join-Path $smokeRoot "Consumer.csproj") -c Release `
|
||||
--nologo --verbosity quiet
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "GameCult.Mesh NuGet consumer smoke failed with exit code $LASTEXITCODE"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,6 +18,21 @@ foreach ($requiredPrimitive in @("CultNetOperationServer", "EveSurface.Create"))
|
|||
}
|
||||
}
|
||||
|
||||
$dotnetPackageRoot = Join-Path ([IO.Path]::GetTempPath()) `
|
||||
("eve-getting-started-nuget-" + [guid]::NewGuid().ToString("N"))
|
||||
try {
|
||||
& (Join-Path $EveRoot "scripts\pack-dotnet-surface.ps1") `
|
||||
-CultLibRoot $cultLibRoot `
|
||||
-OutputDirectory $dotnetPackageRoot
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
throw "The clean .NET package-consumer checkpoint failed."
|
||||
}
|
||||
} finally {
|
||||
if (Test-Path -LiteralPath $dotnetPackageRoot) {
|
||||
Remove-Item -LiteralPath $dotnetPackageRoot -Recurse -Force
|
||||
}
|
||||
}
|
||||
|
||||
& (Join-Path $PSScriptRoot "verify-eve-two-runtime-sample.ps1") `
|
||||
-EveRoot $EveRoot `
|
||||
-SkipDependencyInstall:$SkipDependencyInstall
|
||||
|
|
@ -37,4 +52,4 @@ if ($LASTEXITCODE -ne 0) {
|
|||
throw "The real browser/C# network checkpoint failed."
|
||||
}
|
||||
|
||||
Write-Host "Eve getting-started verification passed: clean artifacts, DOM and headless convergence, real Chromium and C# clients, Odin discovery, receipts, persistence, and route replacement."
|
||||
Write-Host "Eve getting-started verification passed: clean .NET and TypeScript artifacts, DOM and headless convergence, real Chromium and C# clients, Odin discovery, receipts, persistence, and route replacement."
|
||||
|
|
|
|||
|
|
@ -94,9 +94,16 @@ cd CultLib
|
|||
pwsh -File ./scripts/verify-eve-getting-started.ps1
|
||||
```
|
||||
|
||||
This one command runs the clean package-artifact checkpoint and then the real
|
||||
browser/C# network checkpoint. They remain separate programs because they prove
|
||||
different boundaries; the developer should not have to orchestrate them.
|
||||
This one command runs clean .NET and TypeScript package-artifact checkpoints,
|
||||
then the real browser/C# network checkpoint. They remain separate programs
|
||||
because they prove different boundaries; the developer should not have to
|
||||
orchestrate them.
|
||||
|
||||
The .NET layer packs CultLib's managed dependency graph and
|
||||
`GameCult.Eve.Surface`, then restores and runs an empty project whose only
|
||||
GameCult dependency is `PackageReference Include="GameCult.Eve.Surface"`.
|
||||
This proves the renderer-neutral provider contract does not require a sibling
|
||||
Eve or CultLib source tree after packaging.
|
||||
|
||||
The first layer builds and packs `cultcache-ts`, `cultnet-ts`, `cultmesh-ts`,
|
||||
`@gamecult/eve-contracts`, and `@gamecult/eve-browser-lowering`, installs the
|
||||
|
|
|
|||
|
|
@ -21,17 +21,20 @@ The command owns setup and teardown. Do not start Odin, the provider, or the
|
|||
browser by hand. A successful run prints two JSON records followed by:
|
||||
|
||||
```text
|
||||
Eve getting-started verification passed: clean artifacts, DOM and headless convergence, real Chromium and C# clients, Odin discovery, receipts, persistence, and route replacement.
|
||||
Eve getting-started verification passed: clean .NET and TypeScript artifacts, DOM and headless convergence, real Chromium and C# clients, Odin discovery, receipts, persistence, and route replacement.
|
||||
```
|
||||
|
||||
## What The Command Proves
|
||||
|
||||
The first checkpoint packs the TypeScript CultCache, CultNet, CultMesh, and Eve
|
||||
The first checkpoint packs the CultLib managed dependency closure and Eve's C#
|
||||
surface contract, then restores and runs an empty .NET project using only the
|
||||
resulting `GameCult.Eve.Surface` package. The second checkpoint packs the
|
||||
TypeScript CultCache, CultNet, CultMesh, and Eve
|
||||
packages, installs those artifacts into an empty temporary consumer, and proves
|
||||
DOM/headless convergence plus `.cc` reopen. This rejects a sample that only
|
||||
works through repository-relative source imports.
|
||||
|
||||
The second checkpoint boots separate Odin, provider, Chromium, and C# headless
|
||||
The third checkpoint boots separate Odin, provider, Chromium, and C# headless
|
||||
processes. Chromium performs the first increment. The provider then restarts on
|
||||
a different route, Odin advertises the replacement, and the retained clients
|
||||
resubscribe without application reconnect code. C# performs the second
|
||||
|
|
|
|||
|
|
@ -11,8 +11,10 @@ pwsh -File ./scripts/verify-eve-getting-started.ps1
|
|||
```
|
||||
|
||||
With clean sibling CultLib and Eve checkouts, the command installs missing build
|
||||
dependencies and runs two explicit evidence layers. First it packs the five
|
||||
TypeScript packages into an empty temporary consumer, validates the Eve surface
|
||||
dependencies and runs three explicit evidence layers. First it packs the
|
||||
CultLib managed dependency closure plus `GameCult.Eve.Surface`, then restores
|
||||
and runs an empty .NET consumer using only `PackageReference`. Next it packs the five
|
||||
TypeScript packages into another empty temporary consumer, validates the Eve surface
|
||||
and receipt, executes one idempotent counter command, proves a DOM lowerer and
|
||||
headless observer converge, and reopens the durable `.cc` store. Then it boots a
|
||||
durable C# provider, local Odin fixture, real Chromium lowerer, and independent
|
||||
|
|
|
|||
Loading…
Reference in a new issue