Grants first could hold back the very declaration that lets the controller issue them. The holder now goes first, then buckets and memberships, then the rest; a membership that fails holds back only its own machine, and an announcement whose send stopped at its grants is asked again. Whether the holder must go first is read from a digest of the user list it was last sent, not its whole declaration. Migration renumbered to 0058.
23 lines
1.7 KiB
SQL
23 lines
1.7 KiB
SQL
-- A newer plan supersedes the older open plans of the same repository and branch (novox/hq issue 254,
|
|
-- ADR 0218).
|
|
--
|
|
-- A merge produced a plan without looking at the plans still open, so two merges a few minutes apart
|
|
-- were two plans working the same modules, and a plan stuck waiting on something that would never
|
|
-- come stayed open for ever beside the newer ones. The newer plan now takes over what the older had
|
|
-- not yet built and the older is closed as `superseded` — a state of its own, so `plans` can say
|
|
-- which plan replaced it rather than reading as a failure.
|
|
--
|
|
-- `branch` is the branch the merge went into, so only a plan of the same branch is superseded. Empty
|
|
-- for every plan from before this was kept: which branch it answered is not known, and such a plan
|
|
-- is superseded by the next plan of its repository, whichever branch — nothing is lost by it, since
|
|
-- what it had not built is folded into the plan that supersedes it.
|
|
alter table release_plan add column branch text not null default '';
|
|
|
|
-- And the bus's user list the machine holding the bus was last sent, as a digest (novox/hq issue
|
|
-- 249). A module's new grants are refused by the bus until its user list says them, so that machine
|
|
-- is sent first whenever the list it would be sent differs from the one it was. Read from its whole
|
|
-- declaration, every pending change on it — a recorded upgrade the operator chose not to roll out —
|
|
-- went with every send anywhere. A digest and never the list (ADR 0043: the list is composed on each
|
|
-- push, never kept). Empty for a machine never sent one, which reads as behind once.
|
|
alter table node add column sent_bus_users text not null default '';
|