Resolve a group's order rules by precedence, not as a cycle (hq issue 309)
The group feat/a-machine-joins-through-the-tunnel was refused: the controller's member moved the build agent, which builds the node-engine (built by: controller first), and the node-engine goes before the controller (engine before controller: engine first). Both rules applied to one pair in opposite directions, and every two-way pair was a cycle. Rules now have a precedence (hq ADR 0249): a declared after: line, then what the graph and the change say (built by, version skew), then the rollout default engine-before-controller. The higher rule decides the pair, which says what it won over. Rules of one rank both ways are still refused, as a contradiction naming both rules and how to declare the order. TestReplay309 replays the group with only what orderOf had before.
This commit is contained in:
@@ -145,7 +145,8 @@ var ControllerVerbs = []Verb{
|
||||
"removed": "the files among paths it deletes, comma-separated"}, []string{"repository", "paths"})},
|
||||
{Name: "delivery-order", Description: "A delivery group's order (novox/hq ADR 0239): its members in the order " +
|
||||
"they are delivered, every pair and why — declared, built by, version skew, engine before controller — and " +
|
||||
"the cycle when the pairs contradict each other.",
|
||||
"the rules each pair won over by precedence (ADR 0249); the cycle, and each contradiction no precedence " +
|
||||
"resolves with how to declare the order, when the pairs contradict each other.",
|
||||
Input: schema(map[string]string{"members": "the members, as JSON: [{id, repository, base, head, number, paths, " +
|
||||
"module_dirs, module_dirs_said, removed, after}]"}, []string{"members"})},
|
||||
{Name: "delivery-check", Description: "Ask the build seat for a delivery group's composed check (novox/hq ADR " +
|
||||
|
||||
Reference in New Issue
Block a user