Skip to main content

Crate haz_dag

Crate haz_dag 

Source
Expand description

Task DAG construction, validation, and traversal for haz.

This crate owns the directed-task-graph layer that sits above haz-domain’s value objects. It consumes a fully loaded workspace (a haz_domain::workspace::Workspace containing validated projects and tasks) and produces a graph::TaskGraph: the nodes are haz_domain::task_id::TaskIds, the edges are typed by edge::EdgeKind.

§Module map

Modules§

construction
build_task_graph: turn a loaded Workspace into a validated TaskGraph.
cycles
detect_cycles: find every strongly-connected component of size two or more in the union graph of a TaskGraph.
edge
Edge: a directed relation between two TaskIds in the task graph, tagged with its EdgeKind.
effective
Overlay merging: combine each project’s own tasks with the tasks contributed by every overlay file that attaches to it, producing an effective task set for every project per DAG-001..DAG-006 of docs/spec/07-dag-semantics.md.
graph
TaskGraph: the validated task DAG of a workspace.
outputs
detect_literal_output_collisions: the DAG-015 literal-output uniqueness check.
producer
compute_producer_edges: the DAG-013 producer-matching relation expressed as EdgeKind::ProducerMatching edges, plus producers_of_path: the per-path query AUX-015 step 3 needs to annotate haz why input lines.
traversal
Hard-edge graph traversal helpers for relational queries.