Concepts
This section provides a conceptual overview of WBS. If something doesn't make sense or you want to learn more about WBS's architecture, this is a good section to read.
TLDR
Want represents all build inputs and outputs as values in a content-addressed data model called Mycelium. Every value has a cryptographic hash, and equal values have equal hashes, so Want can easily tell whether two trees, files, or computations are identical.
A build is a transformation from an input filesystem (a Module, plus the outputs of its dependencies) to an output filesystem. Everything a computation reads is named explicitly, and the only way to reach outside the module is through the small set of executors, so a computation can always be cached and replayed.
The pieces you will read about next:
- Data Model: how Mycelium values and the Want filesystem (
wantfs) are shaped. - Tasks & Jobs: how units of work are named, cached, and run.
- Executors: responsible for executing Tasks, in the context of a Job.
- Spore: the language that want files are written in.