Repository navigation
ci: samples/Graph/Data joins the content gate — 12k never-type-checked lines - #1515
Conversation
…he content gate Second stage in the doc-gate job: .github/scripts/stage-samples-gate.sh stages the eight domain trees (ACME, Northwind, Cornerstone, FutuRe, PensionFund, MathDemo, PythonDemo, Systemorph) as package roots — uniform synthesized Space roots, index.md dropped from the STAGE only; User is excluded because the gate mesh serves it from a static node provider and installing over that path is refused by design (#1209) — and runs the same install → compile → render → Tests pipeline with its own one-way ratchet, .github/samples-gate.allow. The tester gains ProjectReferences to MeshWeaver.Import and MeshWeaver.GoogleMaps — both portals reference them precisely so in-mesh sample source compiles at runtime; without them the gate flags content the real host compiles fine (Cornerstone/Pricing went red-to-green on exactly this). The seeded ratchet documents 8 REAL defects the first run surfaced — cross-NodeType source references without shared= declarations (FutuRe LineOfBusiness/TransactionMapping ×6, Northwind Product + AnalyticsCatalog: CS0246 on sibling types like Supplier/Category) — which would fail a portal recompile the same way. Local verification: 8 packages, 32 NodeTypes, 'GREEN — 8 known-debt failure(s) allowed', ~12 s wall clock. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR extends the existing in-mesh “content gate” CI job so that it also stages and compiles/runs the sample domain trees under samples/Graph/Data, ensuring runtime-compiled sample Source/*.cs and NodeType content is validated in CI (not just dotnet build’d).
Changes:
- Extend
doc-gateindotnet-test.ymlwith a second stage that runs the samemw-plugin-testpipeline over staged sample packages, with its own shrinking-only allowlist (.github/samples-gate.allow). - Add a staging helper script to synthesize clean
Spaceroots for each sample domain tree prior to the gate run. - Update
MeshWeaver.PluginTesterto referenceMeshWeaver.ImportandMeshWeaver.GoogleMapsso the gate’s compile surface matches the portal’s runtime compile surface.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| tools/MeshWeaver.PluginTester/MeshWeaver.PluginTester.csproj | Adds Import + GoogleMaps references to align runtime compilation surface with portal behavior. |
| .github/workflows/dotnet-test.yml | Adds a second “samples” stage to the existing doc content gate and wires output/error reporting. |
| .github/scripts/stage-samples-gate.sh | Stages the eight sample domain trees as independent package roots with synthesized Space index nodes. |
| .github/samples-gate.allow | Seeds the samples-stage allowlist with currently-known compile failures (ratcheting list). |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| combined="$(printf '%s\n%s' "$verdict" "$sverdict" | grep . | head -1 || true)" | ||
| { | ||
| echo "failure<<GATE_EOF" | ||
| echo "$verdict" | ||
| echo "$combined" | ||
| echo "GATE_EOF" |
Test Results (shard 5)1 920 tests 1 728 ✅ 6m 3s ⏱️ Results for commit 7ec72ca. |
Test Results (shard 0)723 tests 723 ✅ 11m 25s ⏱️ Results for commit 7ec72ca. |
Test Results (shard 4)1 949 tests 1 939 ✅ 8m 11s ⏱️ Results for commit 7ec72ca. |
Test Results (shard 3) 11 files 11 suites 5m 40s ⏱️ Results for commit 7ec72ca. |
Test Results (shard 2)2 607 tests 2 606 ✅ 8m 20s ⏱️ Results for commit 7ec72ca. |
Test Results (shard 1)1 404 tests 1 404 ✅ 6m 37s ⏱️ Results for commit 7ec72ca. |
Test Results 66 files 66 suites 46m 18s ⏱️ Results for commit 7ec72ca. |
Extends the doc-gate job (from #1483) with a second stage over the eight sample domain trees, per the modularization program.
Mechanics:
.github/scripts/stage-samples-gate.shstages each tree as a package root (synthesized Space roots — the FileSystem sibling roots carry persistence stamps that would trip the monotonic guard on a fresh install;Userexcluded by design, #1209), then the samemw-plugin-testpipeline runs with.github/samples-gate.allowas its own shrinking-only ratchet.Tester change:
MeshWeaver.PluginTesternow referencesMeshWeaver.Import+MeshWeaver.GoogleMaps— mirroring the portals, which carry both precisely for these in-mesh compiles. Cornerstone/Pricing went red→green on exactly this.The seeded ratchet is 8 real defects: cross-NodeType source references without
shared=declarations (FutuRe LineOfBusiness/TransactionMapping ×6; Northwind Product + AnalyticsCatalog — CS0246 on sibling types). These would fail a portal recompile identically; fixing them shrinks the list.Local verification (exact CI invocation): 8 packages, 32 NodeTypes,
GREEN — 8 known-debt failure(s) allowed (shrinking list), ~12 s wall clock — comfortably inside the job's existing budget.No What's New — CI-internal.
🤖 Generated with Claude Code