RD-3: the validator accepts a foundation part's own findings stream
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
mesh/check failed: integration: mesh-delivery-builder/internal/build.TestAnAskTheKeyNamesAndNobodyPutIsPutAtStart: buil… | b57281f5a406 on 2f1b60f2a231
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"},
|
"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 {
|
func PredefinedFormProblems(m catalogue.Manifest) []string {
|
||||||
var out []string
|
var out []string
|
||||||
for _, s := range m.Streams {
|
for _, s := range m.Streams {
|
||||||
// A stream that keeps its history is one of the bus's predefined forms (novox/hq ADR 0592 §6).
|
// 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, "+
|
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))
|
"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 {
|
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)
|
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.
|
// A seat name meaning two protocols is the failure nobody could diagnose afterwards.
|
||||||
|
|||||||
Reference in New Issue
Block a user