From c806b792bdf8aea5a466706eac0e10d2de941d5d Mon Sep 17 00:00:00 2001 From: Nucleic Date: Tue, 28 Jul 2026 20:41:28 -0700 Subject: [PATCH] Merge nucleic/olive-jade-civet-rznt into dev --- build.ps1 | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/build.ps1 b/build.ps1 index a19b9d2..66490c1 100644 --- a/build.ps1 +++ b/build.ps1 @@ -25,8 +25,11 @@ .PARAMETER Target protocol — the wire layer only (the required CI leg; needs no SQLite). - core — NucleicCore, the full Windows manifest. EXPECTED TO FAIL until the §12 - item 7-9 shims land; its output is the M0 gap list, not a regression. + core — NucleicCore, the full Windows manifest. Builds green as of the §12 item-9 + shims; a failure here IS a regression. With -Test it instead runs + NucleicCarbonTests, which builds every declared target (nucleic-hostd, + NucleicProtocolC, nucleic-smoke) — those are §12 items 10+ and may still + fail; that output is what's left of the M0 gap list. broker — the C# nucleic-brokerd contract tests (no Swift involved). all — all three, continuing past a failing leg. @@ -182,7 +185,9 @@ function Build-Protocol([hashtable]$sql) { function Build-Core([hashtable]$sql) { Write-Step 'core: building NucleicCore (full Windows manifest)' - Write-Note 'Expected to fail until the §12 item 7-9 shims land — the errors ARE the M0 gap list.' + if ($Test) { + Write-Note '-Test builds EVERY target (hostd, NucleicProtocolC, smoke) — §12 items 10+ may still fail.' + } # NucleicCore only EXISTS when NUCLEIC_WINDOWS_PROTOCOL_ONLY is absent: with it set, # Package.swift narrows the manifest to [NucleicProtocol, NucleicProtocolTests] and this # fails with "no target named 'NucleicCore'". CI never sets it for this job, but a local @@ -230,14 +235,16 @@ try { Write-Step 'Summary' foreach ($k in $results.Keys) { $ok = $results[$k] -eq 0 - # core is the known-failing gap probe; don't report it as a red build. - $label = if ($ok) { 'PASS' } elseif ($k -eq 'core') { 'FAIL (expected — gap list)' } else { 'FAIL' } - $color = if ($ok) { 'Green' } elseif ($k -eq 'core') { 'Yellow' } else { 'Red' } + # `core -Test` still reaches unported targets (§12 items 10+), so only that + # combination is reported as an expected gap rather than a red build. + $gap = ($k -eq 'core') -and $Test + $label = if ($ok) { 'PASS' } elseif ($gap) { 'FAIL (expected — items 10+ gap list)' } else { 'FAIL' } + $color = if ($ok) { 'Green' } elseif ($gap) { 'Yellow' } else { 'Red' } Write-Host (" {0,-9} {1}" -f $k, $label) -ForegroundColor $color } - # core's failure is informational; anything else failing is a real build break. - $hard = @($results.Keys | Where-Object { $_ -ne 'core' -and $results[$_] -ne 0 }) + $hard = @($results.Keys | Where-Object { + $results[$_] -ne 0 -and -not (($_ -eq 'core') -and $Test) }) if ($hard.Count -gt 0) { exit 1 } exit 0 } finally {