Common Vocabulary for Build Systems

  • keys, values, stores: A build system updates a store that implements a mapping from keys to values.
  • input: values provided by user
  • output: end build products
  • intermediate values: all other values
  • persistent build information: information maintained by the build system across builds
  • task description: specification of how to compute a new value for a key given up-to-date values for its dependencies
  • build system: takes a task description, target key, store, and returns a new store in which target + deps have up to date values.
  • operation: a task you can express in your build system’s DSL