waste-not
is a caching system for build pipelines, meant to enable tools to incrementalize their work. It supports caching based on changes to a single file, as well as based on changes to any upstream file in the dependency graph.
The waste-not
package itself is a small integration of a set of subcomponents, also hosted in this repo. In addition to the main package, the waste-not
repo comprises:
- A lightweight, extensible AST walker and visitors for extracting dependencies from files.
- A dependency resolver that converts dependencies into valid, normalized file paths.
- Dependency graph logic that finds all of the direct and indirect dependencies for each file.
- Cache-building utilities that abstract out file-system interactions for a higher-level caching tool.