B0's shape wins: the running checker asks and records facts, the checking program decides. The registry's types win: the rules and the program read the generated checker contract and the domain SDK, and no mesh-sdk delivery import is left. The registry's series, renames and unparsed seat definitions become facts with their refusals as rules; the tagged versions ride on the case. The program reads the heads' seat definitions through sdk/seatdefs and the running checker lays them over its reader's list by seat, reading no file of the heads: the reader's list is larger than a run input's bound. Claude-Session: https://claude.ai/code/session_01NcbgfFSnn24M3GcqttoU7i
44 lines
2.0 KiB
Go
44 lines
2.0 KiB
Go
package check
|
|
|
|
import (
|
|
"mesh-delivery-checker/rules"
|
|
|
|
"git.novox.be/novox/mesh-delivery/sdk/buildstep"
|
|
)
|
|
|
|
// The shapes of what the build modules' steps answer, as their code writes them (mesh-catalog modules/mesh-build-go
|
|
// cmd/mesh-build-go levels.go TestResult, digest.go DigestResult, fetch.go FetchResult; modules/mesh-build-node
|
|
// cmd/mesh-build-node check.go TestResult, fetch.go FetchResult) with the fields the fetch step adds for a merge (ADR 0484
|
|
// clause 3). Only the fields the checker reads are named; the rest is ignored.
|
|
|
|
// Fetched is the answer of a build module's fetch step, whole: the Delivery SDK's FetchAnswer, which a check answer keeps
|
|
// (B2g; the build seats' part FetchAnswer): the workspace, the merge preview with its conflicts, changed paths, programs and
|
|
// trees. A conflict is an answer.
|
|
type Fetched = buildstep.FetchAnswer
|
|
|
|
// ProgramFile is a changed file that is a compiled program (rules.ProgramFile).
|
|
type ProgramFile = rules.ProgramFile
|
|
|
|
// The test step's answer is read by the judging rules (milestone 47/B0); these name their shapes here.
|
|
type (
|
|
Failure = rules.Failure
|
|
TestTime = rules.TestTime
|
|
Tested = rules.Tested
|
|
GoPackage = rules.GoPackage
|
|
)
|
|
|
|
// Digested is the answer of the Go build module's digest step: one digest per package that has tests at the level, by import
|
|
// path.
|
|
type Digested struct {
|
|
// Beside are the lines `<owner/repo> <commit>` of the siblings the digest folded in (DigestVersion 3, lead decision L5),
|
|
// sorted; absent when the workspace has none or the build module folds none in.
|
|
Beside []string `json:"beside,omitempty"`
|
|
Level string `json:"level"`
|
|
Packages map[string]string `json:"packages"`
|
|
WithoutTests []string `json:"without_tests,omitempty"`
|
|
// JudgedBy is the program that ran the digest, as Tested.JudgedBy says.
|
|
JudgedBy string `json:"judged_by,omitempty"`
|
|
// Needs are the packages whose tests need something of the node at this level (issue 890).
|
|
Needs []buildstep.PackageNeeds `json:"needs,omitempty"`
|
|
}
|