Skip to content

fix(ci): project scope reads glob inputs/links; a shipped static asset reaches no referencing project - #6021

Merged
rbuergi merged 1 commit into
mainfrom
fix/project-scope-assets-globs
Oct 3, 2026
Merged

rbuergi merged 1 commit into
mainfrom
fix/project-scope-assets-globs

Conversation

@rbuergi

@rbuergi rbuergi commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Why

Maintainer, 2026-10-03: "why are ci run so long? should only run test of delta plugin not all" … "run only affected parts … incl dependencies".

MeshWeaver.Plugins#2734 changed two files under src/MeshWeaver.Blazor/wwwroot/lib/monaco-editor/ (the vendored Monaco bundle and its versions.json). node-repo-project-scope.py selected 14 portal-host suites for it (run 37124132005), four ~22-minute Blazor legs among them, because:

  1. every entry whose compiled closure contains src/MeshWeaver.Blazor was selected, although no compiler reads a wwwroot/ file and MeshWeaver.Blazor is image-shipped, so no module bundle carries it either;
  2. linked includes were cut to their literal directory: ../MeshWeaver.Blazor/**/*.razor (Blazor.Views.Test) read as "all of src/MeshWeaver.Blazor";
  3. inputs are prefixes only, so a suite that censuses src/**/*.cs had to declare src/.

What changed (.github/scripts/node-repo-project-scope.py)

  • An input or a linked include holding * or ? is a glob (input_covers): **/ spans zero or more directories, ** anything, */? stay inside a segment. A ;-separated Include is read as each pattern. A pattern without a wildcard is the prefix it always was.
  • A static web asset (<project>/wwwroot/…) of a project the caller declares image-shipped (project-closure.py → platform_shipped) reaches only the owner, its sibling <owner>.Test, and entries that link or declare it. A caller without that helper keeps the plain closure rule (the loud direction).
  • Doc: Architecture/BuildScopeNarrowing.md, section Separate compiled validation from content publication.

Self-test: 29 assertions (11 new), each new rule with its negative control (an asset BESIDE a source change in the owner still takes the closure; an asset of a non-shipped project still takes the closure; a wwwrootish/ folder is a compile input).

Measured against the Plugins tree (dry run of this selector + Plugins' declared selector)

PR before after reconcile
#2739 (Store/Plugin/Test/*.cs) 1 host suite 1 (Memex.Hosts.Test) agrees
#2734 (Monaco wwwroot/) 13 host suites 2 (Memex.Hosts.Test, Memex.Portal.Gui.Test — it links the bundle) agrees
#2744 (Hosting/Deployment/{Source,Test}, a page) 2 2 (Memex.Hosts.Test, Fleet.Control.Test — it compiles that Source) agrees

The paired Plugins change (declared selector + policy globs) declares Core-ref to this PR: until this reaches a sealed set, Plugins' reconcile would be RED on an asset-only diff (core selecting suites the declaration no longer names).

Nothing a running instance serves changes; no recycle is owed.

🤖 Generated with Claude Code

…tic asset reaches no referencing project

node-repo-project-scope.py selected every portal-host suite whose compiled
closure contained a changed project, and read linked includes and declared
inputs as literal prefixes. MeshWeaver.Plugins#2734 changed only the vendored
Monaco bundle under src/MeshWeaver.Blazor/wwwroot/ and owed 14 host suites.

- An input or a linked include holding * or ? is a glob matched whole;
  a ;-separated Include is read as each of its patterns.
- A file under <project>/wwwroot/ of a project the caller declares
  image-shipped (project-closure.py platform_shipped) selects only the owner,
  its sibling .Test, and entries that link or declare it.

The caller's scripts/ci-tests.py applies the same rules, so the reconcile
agrees. Self-test: 29 assertions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@rbuergi
rbuergi enabled auto-merge October 3, 2026 13:33
@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 0)

  1 files    1 suites   3m 9s ⏱️
348 tests 348 ✅ 0 💤 0 ❌
352 runs  352 ✅ 0 💤 0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 4)

839 tests   646 ✅  2m 22s ⏱️
  4 suites  193 💤
  4 files      0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 2)

    4 files      4 suites   3m 39s ⏱️
1 264 tests 1 264 ✅ 0 💤 0 ❌
1 265 runs  1 265 ✅ 0 💤 0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 1)

    3 files      3 suites   5m 15s ⏱️
2 297 tests 2 297 ✅ 0 💤 0 ❌
2 300 runs  2 300 ✅ 0 💤 0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 5)

    4 files      4 suites   12m 45s ⏱️
2 725 tests 2 725 ✅ 0 💤 0 ❌
2 728 runs  2 728 ✅ 0 💤 0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results (shard 3)

    4 files      4 suites   12m 54s ⏱️
2 991 tests 2 991 ✅ 0 💤 0 ❌
2 993 runs  2 993 ✅ 0 💤 0 ❌

Results for commit c204fbf.

@github-actions

github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Test Results

    20 files      20 suites   40m 6s ⏱️
10 464 tests 10 271 ✅ 193 💤 0 ❌
10 477 runs  10 284 ✅ 193 💤 0 ❌

Results for commit c204fbf.

@rbuergi
rbuergi merged commit 174f317 into main Oct 3, 2026
@rbuergi
rbuergi deleted the fix/project-scope-assets-globs branch October 10, 2026 13:11
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.

1 participant