Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .changeset/18677-validate-per-package-authoring-pass.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

`os validate` runs the per-package author-time rule pass `os build` already ran — the false-clean residue #17069 left one layer down.

`os build` runs the artifact's authoring rules **twice**: once over the union-folded stack, then a second `runAuthoringRules('build', …)` pass over each `artifactPackages(…)` entry with `packageBodyAsStack(…)` as resolution context, de-duplicated against the union run. `os validate` ran the union pass and stopped — it imported neither seam. By `compile.ts`' own description the survivors of that second pass are "exactly the set the union could not see", so that whole set was findings `os build` reported and `os validate` **structurally could not**. The direction is false-clean, and on the worse door: the fast pre-flight is what an author runs *before* shipping, so its clean bill of health is the strongest false assurance the three commands can give.
`os build` runs the artifact's authoring rules **twice**: once over the union-folded stack, then a second `runAuthoringRules('build', …)` pass over each `artifactPackages(…)` entry with `packageBodyAsStack(…)` as resolution context, de-duplicated against the union run. `os validate` ran the union pass and stopped — it imported neither seam. By `compile.ts`' own description the survivors of that second pass are the per-package findings no union finding already carried under the same rule, `where`, message and non-top-level position — deliberately narrower than everything the union run missed, because two entries rendering the same `where` still collapse. That whole set was findings `os build` reported and `os validate` **structurally could not**. The direction is false-clean, and on the worse door: the fast pre-flight is what an author runs *before* shipping, so its clean bill of health is the strongest false assurance the three commands can give.

Measured on `origin/main` 09e16a574 over `examples/app-multi-package`, both commands exiting 0:

Expand Down
9 changes: 6 additions & 3 deletions .changeset/18778-lint-per-package-authoring-pass.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,12 @@
`packages[]` entry with that package's body as the stack and the artifact's own
`packages[]` as resolution context, since #16611; `os validate` joined it in
#18677. `os lint` ran the union fold and stopped, so every finding that pass
produces — "exactly the set the union could not see", in the build command's own
words — was reported by the command that ships and invisible on the fastest of
the three doors. All three now call the one shared pass.
produces — in the build command's own words, the per-package findings no union
finding already carried under the same rule, `where`, message and non-top-level
position — was reported by the command that ships and invisible on the fastest
of the three doors. That bound is deliberately narrower than everything the
union run missed: two entries rendering the same `where` still collapse. All
three now call the one shared pass.

Measured on a two-package project whose union run is clean and whose per-package
run is not (one package owns an object, a sibling package owns the view that
Expand Down
Loading