Skip to content

ci: samples/Graph/Data joins the content gate — 12k never-type-checked lines - #1515

Merged
rbuergi merged 1 commit into
mainfrom
feat/samples-content-gate
Aug 14, 2026
Merged

rbuergi merged 1 commit into
mainfrom
feat/samples-content-gate

Conversation

@rbuergi

@rbuergi rbuergi commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

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.sh stages 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; User excluded by design, #1209), then the same mw-plugin-test pipeline runs with .github/samples-gate.allow as its own shrinking-only ratchet.

Tester change: MeshWeaver.PluginTester now references MeshWeaver.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

…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>
Copilot AI lite review requested due to automatic review settings August 14, 2026 09:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-gate in dotnet-test.yml with a second stage that runs the same mw-plugin-test pipeline over staged sample packages, with its own shrinking-only allowlist (.github/samples-gate.allow).
  • Add a staging helper script to synthesize clean Space roots for each sample domain tree prior to the gate run.
  • Update MeshWeaver.PluginTester to reference MeshWeaver.Import and MeshWeaver.GoogleMaps so 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.

Comment on lines +1144 to 1148
combined="$(printf '%s\n%s' "$verdict" "$sverdict" | grep . | head -1 || true)"
{
echo "failure<<GATE_EOF"
echo "$verdict"
echo "$combined"
echo "GATE_EOF"
@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

1 920 tests   1 728 ✅  6m 3s ⏱️
   11 suites    192 💤
   11 files        0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

723 tests   723 ✅  11m 25s ⏱️
 10 suites    0 💤
 10 files      0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

1 949 tests   1 939 ✅  8m 11s ⏱️
   11 suites     10 💤
   11 files        0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

   11 files     11 suites   5m 40s ⏱️
1 837 tests 1 734 ✅ 103 💤 0 ❌
2 176 runs  2 073 ✅ 103 💤 0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

2 607 tests   2 606 ✅  8m 20s ⏱️
   12 suites      1 💤
   12 files        0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

1 404 tests   1 404 ✅  6m 37s ⏱️
   11 suites      0 💤
   11 files        0 ❌

Results for commit 7ec72ca.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results

    66 files      66 suites   46m 18s ⏱️
10 440 tests 10 134 ✅ 306 💤 0 ❌
10 779 runs  10 473 ✅ 306 💤 0 ❌

Results for commit 7ec72ca.

@rbuergi
rbuergi merged commit d3405ac into main Aug 14, 2026
22 checks passed
@rbuergi
rbuergi deleted the feat/samples-content-gate branch August 19, 2026 10:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants