Conversation
File size check0 over a hard cap (fails), 31 warning(s).
Split the file, wrap the line, shorten or exempt the comment, or list the path in 5 managed file(s) skipped; repo-platform owns them. |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The revised regression test uses test/sections/ instead of the actual test/src/sections/ mirror.
Get a fresh assessment by requesting another Copilot review.
Review effort: Balanced
Findings: 1
Open (1)
What changed in this PR
Removes obsolete prerelease exclusions now that src/ contains code only.
Changes:
- Simplifies shipped-path detection and skip messages.
- Updates release tests and library documentation.
- One test uses the wrong section-mirror path.
| File | Description |
|---|---|
.github/scripts/release-pipeline.ts |
Removes unpacked-path exclusions. |
test/scripts/release-pipeline.test.ts |
Updates shipped-surface tests. |
docs/reference/library.md |
Removes obsolete exclusion documentation. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The next publish verdict carried an exclusion list, NEXT_BUILD_UNPACKED, so a merge touching only tests, scenarios, mocks, generators, or docs prose under src/ published no pre-release. The merge just before it had already moved every such file out of src/ (tests, mocks, generators, and scenarios to the per-section test mirror, docs prose to docs/sections/), so the list matched nothing from the moment it landed and was dead config. Remove NEXT_BUILD_UNPACKED, unpacked(), UNPACKED_TEXT, and the guard in ships(); the skip reason ends at the always-packed clause again. Rework the pipeline test into a plain surface case: a merge touching only a section's test, scenario, mock, and docs prose publishes nothing because they lie outside every NEXT_BUILD_INPUTS entry, and one touching src/sections/x/index.ts publishes. Drop the scenarios.ts module-name case: without a directory rule there is nothing for a module named like one to be confused with. Delete the library reference bullet that described the exclusion. The changed-sections census test fails CI if a test-like file returns under src/, so the layout is pinned where it is decided and no guard is kept.
96150b8 to
0b2a3af
Compare
|
Folded into the release-PR hook change: the same PR moves the next publish into update-release-pr.yml and deletes the whole post-green verdict, this exclusion list included. |

Before / After
Skip notice, before:
Skip notice, after:
ships()beforeships()aftersrc/sections/x/x.test.ts*.test.ts)git ls-files srclists code onlytest/src/sections/x/x.test.ts,docs/sections/x.docs.ymlsrc/sections/x/index.tsHow
.github/scripts/release-pipeline.ts: removeNEXT_BUILD_UNPACKED,unpacked(),UNPACKED_TEXT, and the guard inships(); the skip reason ends at the always-packed clause;ALWAYS_PACKEDstays.test/scripts/release-pipeline.test.ts: drop the import; restore theSHIPPEDconstant; the case is now a plain surface case: a merge touching onlytest/src/sections/x/x.test.ts,test/src/sections/x/scenarios/a.yml,test/src/sections/x/mock.ts, anddocs/sections/x.docs.ymlpublishes nothing (outside everyNEXT_BUILD_INPUTSentry), and one touchingsrc/sections/x/index.tspublishes.scenarios.tsmodule-name case is dropped: it pinned that a module named like an excluded directory was not excluded, and there is no directory rule left to confuse it with.docs/reference/library.md: delete the "Under src/, what the build never packs does not count" bullet.Proof
env -u NODE_OPTIONS bun run typecheck: clean.bun run knip: clean.bun run lint: 493 files, clean.bun test test/scripts/release-pipeline.test.ts --timeout 120000: 102 pass, 0 fail.bun run build:check: 13 generated files match their generators; nothing regenerated (the library reference is hand-written).Line accounting by kind
.github/scripts/release-pipeline.tstest/scripts/release-pipeline.test.tsdocs/reference/library.mdReviewer note
test/src/sections/<key>/) anddocs/sections/are outside it, the cross-file fact between the layout andNEXT_BUILD_INPUTSthat the exclusion was built for.test/scripts/changed-sections.test.tshas a census case (src/ holds code only) that fails CI if a test, mock, generator, scenario, or docs prose file returns undersrc/sections/; the sibling case "every top-level src entry is either sections/ or all-selecting" rejects a stray top-level module. The layout is pinned where it is decided, so the publish verdict needs no second copy of the rule and no compat path.test/src/sections/<key>/is the mirror at this commit; a following change moves it totest/sections/<key>/, and the verdict does not depend on which.BEGIN_COMMIT_OVERRIDE
chore(ci): drop the never-packed exclusion now that src holds code only
The next publish verdict carried an exclusion list, NEXT_BUILD_UNPACKED, so a merge touching only tests, scenarios, mocks, generators, or docs prose under src/ published no pre-release.
The merge just before it had already moved every such file out of src/ (tests, mocks, generators, and scenarios to the per-section test mirror, docs prose to docs/sections/), so the list matched nothing from the moment it landed and was dead config.
Remove NEXT_BUILD_UNPACKED, unpacked(), UNPACKED_TEXT, and the guard in ships(); the skip reason ends at the always-packed clause again.
Rework the pipeline test into a plain surface case: a merge touching only a section's test, scenario, mock, and docs prose publishes nothing because they lie outside every NEXT_BUILD_INPUTS entry, and one touching src/sections/x/index.ts publishes.
Drop the scenarios.ts module-name case: without a directory rule there is nothing for a module named like one to be confused with.
Delete the library reference bullet that described the exclusion.
The changed-sections census test fails CI if a test-like file returns under src/, so the layout is pinned where it is decided and no guard is kept.
END_COMMIT_OVERRIDE