ADR 0270: how a failed new-module build is said, a one-machine module is never covered, and which gate tests the forge module
Decision 1 named S6 for a failed new-module build; S6 is a lost build ask. Such a build is said by one line in the controller's log until its module is assigned. A module on one machine never gets a 'rest' step, so covered never reaches it. The forge module's tests run in the catalogue's TypeScript check, #151.
This commit is contained in:
+15
-4
@@ -79,8 +79,10 @@ a check that answers after the merge.
|
||||
`proposed`, `checked` and `rejected`, the row is tried before *merged unchecked → held*, and from `held`
|
||||
it is tried on every tick. `ready → published → delivered` already did this for a merge that passed.
|
||||
**A delivery that only adds a module is reported delivered whatever its build's outcome.** The build is
|
||||
the controller's, registered when it lands and sent nowhere. A failed build of it is the build seat's
|
||||
condition (S6) and is seen when the module is assigned, not this delivery's.
|
||||
the controller's, asked at the merge, registered when it lands and sent nowhere. A failed build of it
|
||||
raises no condition and is not this delivery's: the controller prints a line in its log, and nothing
|
||||
else says it until a person assigns the module, which is refused while no build of it is registered.
|
||||
This is a known gap, not closed here.
|
||||
2. **A new final state, `covered`: a later merge that contains it was delivered.** A merged delivery is
|
||||
covered when, for every module its plan moves, another delivery:
|
||||
- is of the same repository and was merged into the same trunk, after it by the forge's merge times (the
|
||||
@@ -146,6 +148,11 @@ The table of ADR 0239 decision 2 gains these rows:
|
||||
module is behind.
|
||||
- **`covered` is only as complete as the walks' records.** A module the later walk held back for a person is
|
||||
not sent, so it does not count. A delivery whose modules were only partly carried stays held for a person.
|
||||
- **A module that runs on one machine only is never covered.** A walk records "the rest running it" only
|
||||
after its first machines passed and the rest were sent. A module on one machine has no rest, so its steps
|
||||
never say it reached every machine. mesh-delivery itself, on the control node alone, is such a module: a
|
||||
held merge of it stays held for a person, as before this record. Reading "every machine running it" from
|
||||
the first machines when they are all the machines would close it, and is left for a later change.
|
||||
- **A group member waits longer, rather than being held too soon.** A composed check that never answers leaves
|
||||
the member in `published`. Its bound of 30 minutes lists it as stalled. That is the right owner for a check
|
||||
that does not answer.
|
||||
@@ -169,7 +176,10 @@ The table of ADR 0239 decision 2 gains these rows:
|
||||
stays held when the later delivery's walk was of another commit or another branch, or sent its module to its
|
||||
first machine only. A second restart moves nothing.
|
||||
- The forge module's `test/checks.test.ts`: a compare with no commits ahead is contained, one with some is
|
||||
not, an answer without a count is no answer, and only a sha reaches the compare's path.
|
||||
not, an answer without a count is no answer, and only a sha reaches the compare's path. The forge module is
|
||||
TypeScript. Its tests, and a type-check of every source, are run on the build seat by the catalogue's
|
||||
TypeScript part of its check, `merge-check-typescript.sh` (mesh-catalog #151), in the TypeScript toolchain
|
||||
with the SDK it holds. Before #151 no gate ran them: the catalogue's check ran only Go.
|
||||
- `TestAGroupMemberWaitsForItsComposedCheckToAnswer` and `TestAMemberHeldForItsComposedCheckIsLiftedWhenItPasses`:
|
||||
a pass or a warning lifts the member; a failure, or a pass for other heads, keeps it held.
|
||||
|
||||
@@ -189,4 +199,5 @@ stopped or failed.
|
||||
module opens no walk.
|
||||
- [Design 47](../03-DESIGN/01-to-be/47-delivery-from-commit-to-delivered.md), *The state table* and *A
|
||||
delivery group*, which take these rows once this record is accepted.
|
||||
- mesh-catalog #150, which builds it, and the forge module's `gitea_contains` with it.
|
||||
- mesh-catalog #150, which builds it, and the forge module's `gitea_contains` with it; mesh-catalog #151,
|
||||
which has the catalogue's check run its TypeScript modules.
|
||||
|
||||
Reference in New Issue
Block a user