Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Part of epic #337 (linked as parent). The owner approved the epic and all its batches on 2026-10-10, including this CI workflow change under clause 2; this child is batch 3 and inherits that approval.
User story
As the owner, I want a PR's CI to run only the feature tests its change reaches, so that PRs merge sooner.
Acceptance criteria
- On a PR, the e2e job runs the feature tests mapped to the changed code files' areas.
- The e2e job runs every test defined in a changed feature test file.
- A changed test file with an
init, or a declaration another file uses, runs the whole feature package. - A changed path in
every-testruns the whole feature package. - A changed code path with no area fails the e2e job before any test runs.
- A docs-only PR runs only
TestFeatureMapCoverageand the coverage package tests. - Selection reads each path's areas from both the base map and the head map.
- A map change that removes a test from any file's selection fails CI without
map-narrowing-approved. - Adding or removing a PR label reruns every CI job.
- A push to
mainruns the whole feature package. - The job summary lists the affected areas, the selected tests and the count not run.
What I'd notice: a PR's e2e check runs part of the suite, and its summary reads "selected n of N".
Tasks
-
Select,RunPattern,AlwaysRunine2e/coverage/select.go. -
selecttestsCLI ine2e/coverage/cmd/selecttests/main.go. -
.github/workflows/ci.yml: trigger types and thee2ejob, as pinned in the contract. -
docs/testing.md: the selection section. - The
map-narrowing-approvedlabel in relay. - Tests from these criteria:
select_test.gowith fixtures ine2e/coverage/testdata/select/.
Contract
The planner's contract is the comment on #337, section 2 and child B. Clause 2: yes (ci.yml), approved by the owner on 2026-10-10.
Ownership:
- dev:
.github/workflows/ci.yml(trigger types and thee2ejob only),e2e/coverage/select.go,e2e/coverage/cmd/selecttests/main.go,docs/testing.md(selection section) - test-writer:
e2e/coverage/select_test.go,e2e/coverage/testdata/select/
Budget: 6 files, about 800 lines. Depends on child A (#343).
Waits: selection is a pure function of two commits; fixture repos are built with git in a temp dir.
Decisions made for the owner
- See the contract comment on Epic: PRs run only the e2e tests their change affects, with a full run at epic close #337.
- Ownership amendment (coordinator):
CLAUDE.md(the e2e row of the What gates what table) joins this child's ownership, with the e2e row of thedocs/testing.mdgates table. Both are doc lines that would otherwise state the old run. - Rule 2 does not treat an app build file as test-only; rule 1 counts any use of a changed file's top-level name;
NARROWEDlines print when the label is present. Details in the coordinator's comment.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Activity
barelyworkingcode commentedon Oct 10, 2026
Approval: the owner approved epic #337 and all its batches on 2026-10-10, including this clause 2 change. This child inherits the approval (coordinator).
barelyworkingcode commentedon Oct 10, 2026
Coordinator approval: the owner approved epic #337 and all its batches on 2026-10-10 (clause 2 changes included); this child is one of the epic's listed batches and inherits that approval.
barelyworkingcode commentedon Oct 10, 2026
Decisions made for the owner (coordinator):
*.mdthat is in the M4 app build file set is a code path under rule 3. None exists today. This only tightens.initandTestMainrun the whole package.selecttests --fulluses aSelectFullhelper, which the contract does not pin. Output and exit codes are as pinned.NARROWEDlines still print when the PR carriesmap-narrowing-approved, and the exit is 0, so the owner sees what the label allowed.map-narrowing-approvedlabel is created in relay. Only the owner applies it.barelyworkingcode commentedon Oct 10, 2026
Contract amendment (coordinator):
CLAUDE.md(the e2e row of the What gates what table) and the e2e row of thedocs/testing.mdgates table join this child's ownership. Both are doc lines that would otherwise state the old run. Not user-noticeable beyond the docs.