RD-3: the validator accepts a foundation part's own findings stream
mesh/check failed: integration: mesh-delivery-builder/internal/build.TestAnAskTheKeyNamesAndNobodyPutIsPutAtStart: buil… | b57281f5a406 on 2f1b60f2a231
mesh/delivery-group group fix/47-G-reader-release-2 rejected: composed together: the checker's verdict at the members' heads (12ff6ae3438d): integration: mesh-…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-delivery-builder/internal/build.TestAnAskTheKeyNamesAndNobodyPutIsPutAtStart: buil… | b57281f5a406 on 2f1b60f2a231
mesh/delivery-group group fix/47-G-reader-release-2 rejected: composed together: the checker's verdict at the members' heads (12ff6ae3438d): integration: mesh-…
mesh/delivery closed: a newer head of the same pull request
A foundation part keeps its old sections for good, its findings stream among them; the trunk refused the new indexer manifest's mesh-delivery-indexer-findings as outside the predefined forms. Builds: design 47 G §529, A-30, A-146 (hq 618ad2b7) Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
@@ -5571,12 +5571,15 @@ var streamsKeptUntilMoved = map[string][]string{
|
||||
"mesh-delivery-forge-bridge": {"forge"},
|
||||
}
|
||||
|
||||
// PredefinedFormProblems refuses each stream a module declares that streamsKeptUntilMoved does not name for it.
|
||||
// PredefinedFormProblems refuses each stream a module declares that streamsKeptUntilMoved does not name for it, but a
|
||||
// foundation part's.
|
||||
func PredefinedFormProblems(m catalogue.Manifest) []string {
|
||||
var out []string
|
||||
for _, s := range m.Streams {
|
||||
// A stream that keeps its history is one of the bus's predefined forms (novox/hq ADR 0592 §6).
|
||||
if !s.KeepsHistory() && !slices.Contains(streamsKeptUntilMoved[m.Module], s.Name) {
|
||||
// A foundation part keeps its old sections for good, its streams among them: its findings stream
|
||||
// `<module>-findings` (design 47 G §529, A-30, A-146).
|
||||
if !s.KeepsHistory() && !slices.Contains(Foundation, m.Module) && !slices.Contains(streamsKeptUntilMoved[m.Module], s.Name) {
|
||||
out = append(out, fmt.Sprintf("%s keeps the stream %q, outside the bus's predefined forms: keep it as a state, "+
|
||||
"a log or an object store, which the runtime reads for the module's tools and others read by `reads`", m.Module, s.Name))
|
||||
}
|
||||
|
||||
@@ -5111,6 +5111,11 @@ func caseTwoModulesCannotDeclareOneStream(t *testing.T) {
|
||||
if got := PredefinedFormProblems(catalogue.Manifest{Module: "mesh-mail", Streams: a.Streams}); len(got) != 0 {
|
||||
t.Fatalf("a stream kept until it moves was refused: %v", got)
|
||||
}
|
||||
// A foundation part keeps its old sections for good: its findings stream is accepted (design 47 G §529, A-30, A-146).
|
||||
findings := []catalogue.StreamDeclaration{{Name: "mesh-delivery-indexer-findings", Events: []string{"finding-written.*"}}}
|
||||
if got := PredefinedFormProblems(catalogue.Manifest{Module: "mesh-delivery-indexer", Streams: findings}); len(got) != 0 {
|
||||
t.Fatalf("a foundation part's findings stream was refused: %v", got)
|
||||
}
|
||||
}
|
||||
|
||||
// A seat name meaning two protocols is the failure nobody could diagnose afterwards.
|
||||
|
||||
Reference in New Issue
Block a user