Skip to main content

Targets & rules

A target is the unit of work in heph: a name, a set of inputs, and the action that turns those inputs into outputs. Targets are addressed by path, using the // prefix that gives the project its mark:

//app:server
//lib/auth:lib
//proto:api

The dependency graph

Edges between targets form a DAG. heph walks it bottom-up: a target can only run once every dependency has produced its outputs. Independent targets run concurrently across every core.

TermMeaning
targetA named, cacheable unit of work.
hashinThe hash of a target's complete inputs.
cache hitA hashin already present in the cache.
sandboxThe isolated directory an action runs in.
tip

Keep targets small and explicit. The finer the graph, the more heph can cache and parallelize.