Repository navigation
Conversation
A run where an assembly has errors blocks everything below it. It used to remove the blocked assemblies' outputs and records as well, so the first successful run after the error compiled every dependent again, even when the assembly with errors came back with the same reference assembly. Nothing in the blocking run reads those outputs, since everything that references a blocked assembly is blocked too, and a later run uses them only after checking its input key, output hashes, baseline and non-source key. A reference that comes back the same now leaves the dependents reused or checked on their changed files; one that comes back changed still compiles them.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
a148fde
into
feature/compile-check-changed-files-check
Summary
User Impact
Changes
BlockedAssemblies, and everything below it is still blocked.Verification
Inverted pin:
TestCompileUnitsBlocksTheDependentsOfAnAssemblyThatFailedToCompilenow requires the blocked unit's earlier output to stay.Replaced test:
TestBaselineRemovedByBlockedRunIsNotCalledNeverCompiledis nowTestBlockedRunKeepsTheBaselineOfTheBlockedAssembly. A body edit in the blocked assembly is answered by the changed-files check once the reference comes back the same.New tests:
Before the fix, every new or changed test failed except the "reference comes back changed" one, which describes behaviour that does not change.
Mutations, each restored afterwards:
cli/dispatcher:golangci-lint fmt --diffis empty;go vet ./...passes;golangci-lint runand the complexity config both report 0 issues.go test ./...andgo test -race ./internal/compilecheck/...pass.cli/release-automation:go test ./...passes;check-skill-sizepasses; the file-length check passes.scripts/sync-tool-docs.sh --checkreports no drift.Repository CI does not run on pull requests into this branch; the checks above were run locally.