Repository navigation
Commit 4c8cdb2
fix(ci): gate cross-package conformance scans by their real input set (#7802)
A test that resolves the repo root and walks it has an input set far wider
than the package it lives in, and both of CI's scoping layers judged such a
test by its home package:
- `turbo ls --affected` (ci.yml `test`, the PR path) reaches packages
through the dependency GRAPH. `packages/spec` declares no dependency on
`packages/platform-objects` — and should not; the api-methods batch
conformance scan reads source text precisely to avoid inverting the
spec -> * direction. Measured on turbo 2.10.7: a platform-objects-only
diff makes 51 packages affected, `@objectstack/spec` not among them.
- turbo's task cache hashes `$TURBO_DEFAULT$`, which is package-local, so
`@objectstack/spec#test` hashed identically before and after the change.
Even the merge-queue and push builds — which deliberately partition the
FULL package list — replayed a cached green. Measured: `>>> FULL TURBO`
in 42ms replaying the prior log, while `--force` on the same tree failed
the scan. This layer, not the paths-filter, is why #7769 reached `main`.
Packages whose tests read outside themselves now declare that radius once,
and both layers are driven from it: ci.yml unions a declaring package back
into the shard's package set when the diff touches its globs, and turbo.json
carries matching `$TURBO_ROOT$` inputs so the cache hash moves with them.
The declaration list cannot rot, which is the point: the gate finds escaping
tests itself, statically, and fails on a package that has one and no
declaration, on a stale declaration, on a glob turbo.json does not hash, and
on a radius too narrow to cover the paths its own tests name. A new
cross-package scan that nobody registers produces a red gate naming it and
the globs to write — not a silent skip.
Census: 20 such tests in 8 packages. Radii are kept narrow so the
affected-subset optimisation the 3-way shard exists for survives; the
literal-coverage check is what makes narrowing safe.1 parent 0e79785 commit 4c8cdb2
5 files changed
Lines changed: 701 additions & 0 deletions
File tree
- .github/workflows
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
307 | 307 | | |
308 | 308 | | |
309 | 309 | | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
310 | 338 | | |
311 | 339 | | |
312 | 340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
537 | 537 | | |
538 | 538 | | |
539 | 539 | | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
540 | 561 | | |
541 | 562 | | |
542 | 563 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
78 | 78 | | |
79 | 79 | | |
80 | 80 | | |
| 81 | + | |
81 | 82 | | |
82 | 83 | | |
83 | 84 | | |
| |||
0 commit comments