Repository navigation
chore: compile-check docs say an assembly a run leaves out keeps its changed-files baseline - #3351
Conversation
…baseline An assembly whose own inputs did not change is not planned, and nothing in the run touches what the check recorded for it. Pin that its outputs, result, and baseline survive such a run, whether the run compiles nothing or only another assembly, and that its next body edit is checked rather than compiled in full.
The changed-files check docs said a run that skips an assembly because nothing it compiles from changed removes its result and baseline. Only a dependent the run picked up because a reference changed, and then left out because every such reference kept its surface or changed only names it never writes, loses them. An assembly the plan never selects keeps both, so its next body edit is checked.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
A dependent the run picks up only because a reference changed records no baseline when it is compiled, and has its result and baseline removed when it is left out, so the docs no longer say the latter is the only case. The compile-check skill said a run that skipped the assembly makes its next body edit compile in full; narrow that to such a dependent.
22518a4
into
feature/compile-check-changed-files-check
Summary
User Impact
DeclarationChanged), not compiled in full withno baseline, which contradicted the docs.Changes
docs/compile-check.md: corrected theno baseline: no full compile of this assembly is on recordentry and the matching bullet under "So the first body edit is compiled in full more often than it looks".SKILL.md: the list of runs after which the first body edit is compiled in full no longer names every run that skipped the assembly, only one that picked it up because a reference changed. No generated copy of this skill is tracked, and the skill stays under the 8,000-byte cap.fast_path_test.go:TestRunLeavingAnAssemblyOutKeepsItsBaselinerecords a baseline, runs a plan that leaves the assembly out (one subtest compiles nothing, the other compiles only another assembly), checks that every file the check keeps for the assembly hashes the same, and then checks that a body edit is fast-checked without csc.No Go production code changes.
Verification
go test -race -count=1 ./internal/compilecheck/... ./internal/dispatcher/...incli/dispatcher: okgofmt -lis empty,go vetexits 0, andgolangci-lint runreports 0 issues.go test ./...passes incli/dispatcherand incli/release-automation, including./internal/architecture/.... Incli/commonandcli/project-runner, one test each fails only inside the local sandbox:TestOSUnixMetadataReaderReportsRealOwnerAndModeandTestSendWithTransientConnectionRetryAbortsOnRefusedConnect. This PR does not touch either module.check-skill-sizeandscripts/sync-tool-docs.sh --check: passscripts/check-code-complexity.shandscripts/check-file-length.sh: exit 0