Repository navigation
feat: compile-check's record store can keep the last changed-files check - #3328
Conversation
…sembly The store can now record what a check of an assembly's changed files reported, under the input key, the baseline and the worker build it checked with, and hand it back only while all three are the same. A record is never written without all three keys, is written through a temporary file, and Forget removes it with the assembly's other records. Nothing writes it yet.
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 24 seconds. View limit details
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
A record that is not JSON decodes to nothing, so it was rejected by its format version even when the decode error was ignored. A record whose version and keys match but whose one field has the wrong type decodes partly, and only the decode error stops it from being handed out.
626c5d8
into
feature/compile-check-changed-files-check
Summary
User Impact
Changes
<Assembly>.fastresult.json, next to<Assembly>.result.json, at format version 1. It holds the input key, the baseline's input key, the worker build key, and what the check reported: success, diagnostics, changed files, unchecked codes, and whether generators were not rerun.ReusableFastCheckhands the record back only when all three keys match and the format version is this build's. An empty input key never matches, and an unreadable record counts as no record.RecordFastCheckrefuses to write without an input key, a baseline or a worker build. A record under an empty key could later match another empty key. It writes through a temporary file, like the other records.Forgetremoves the new record as well, after the other three, so no check outlives the compile it was checked against.Verification
resultstore:Forgetremoves the record;Forgetkeeping the record;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. The file-length check passes.