docs(coordinator): a DAG is declared, not described
The submit-time petgraph `toposort` this described is gone — a cycle needs an edge pointing at a node declared later, and a handle only exists for a node already declared. Say why the validation pass is absent rather than leaving a description of one that isn't there. `templates.rs`'s module doc was 35 lines and over the comment-block lint's max; it now points here for the reasoning instead of restating it, and drops the power-op paragraph that `submit.rs` already owns.
This commit is contained in:
parent
e7c3cf5a3d
commit
ec16b80415
2 changed files with 19 additions and 26 deletions
|
|
@ -23,9 +23,15 @@ dashboard group; the **node** is the unit of scheduling / execution /
|
|||
build-log. Deps are intra-DAG edges only (`AfterOk` by default:
|
||||
the dep must succeed, a failed/cancelled dep cancels the dependent —
|
||||
cancel-downstream). Cross-DAG ordering comes from the per-agent lease,
|
||||
never from edges between DAGs. Submit-time validation (petgraph `toposort`)
|
||||
rejects cyclic specs outright, fixing the old queue's "circular dep silently
|
||||
deadlocks" caveat.
|
||||
never from edges between DAGs.
|
||||
|
||||
A DAG is **declared, not described**: a template builds it through
|
||||
`hive_jobq::JobBuilder`, naming each node it depends on via the handle
|
||||
`b.node(kind)` handed back, and the builder inserts the nodes itself. A handle
|
||||
only exists for a node already declared, so every edge points backwards and a
|
||||
cycle cannot be written down — there is no submit-time validation pass, because
|
||||
there is no malformed spec to reject. (The old queue had a petgraph `toposort`
|
||||
here, guarding against the positional indices that used to express edges.)
|
||||
|
||||
### Node inventory (primitives)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue