Builds are programs. Let's start treating them that way.
Most build tools are declarative, and for a long time they worked well for us. The problem is that the increasing number of platform, framework, and library combinations have made it impossible for these tools to be both declarative and comprehensive. Instead of a special-purpose DSL, Boot supplies abstractions and libraries you can use to automate nearly any build scenario with the full power of the Clojure language. It's not a build tool - it's build tooling.
- Managed filesystem tree provides a scoped, immutable, append-only interface for communicating between tasks.
- Easy classpath isolation with pods. Provides separate Clojure runtimes without separate JVMs.
- Compose build pipelines in the project, in the build script, in the REPL, or on the command line.
- Write quick Clojure scripts without a project context using shebang support.
- Tasks are not coupled via hardcoded file paths or magical keys in a global configuration map.
Artifacts can never be stale.
There is no need for a