Parent/child (v0.1.0) is a tree: one parent per lock, release and sweep cascade to descendants in one transaction, and the parent is verifyd inside the child's claim transaction.
The generalisation asked for is a recursive graph in the WARP sense. Open questions before code:
- Multiple parents (a DAG): does a child need all parents live, or any? Does releasing one parent release the child, or only when the last parent goes?
- Cycles: refuse at claim time, or allow with a different cascade rule?
- Cross-store edges: can a lock in one store depend on a lock in another store (another repo's family)?
- Should the graph itself be a git object (a tree of edges) so it is versioned and diffable, rather than one
parent: line per record?
Mechanically, --parent repeatable plus a set of verify lines per parent is a small step from what exists; the semantics above are the real decision.
Parent/child (v0.1.0) is a tree: one parent per lock, release and sweep cascade to descendants in one transaction, and the parent is
verifyd inside the child's claim transaction.The generalisation asked for is a recursive graph in the WARP sense. Open questions before code:
parent:line per record?Mechanically,
--parentrepeatable plus a set ofverifylines per parent is a small step from what exists; the semantics above are the real decision.