Introducing cache control for Dagger modules.
Dagger executes your CI pipelines incrementally: when a pipeline runs twice, it skips work that’s already done and can complete faster. This caching process happens automatically, sparing you the pain of maintaining fragile configuration files.
But until now, only system functions could be cached in this way, and not functions defined in a module...
So, as of Dagger 0.19.4, module functions are cached by default.
To cache module functions by default, we needed a way to know whether your function is pure. A function called deploy() looks the same as build() to the engine, and caching the wrong one would break your pipeline. The solution is to annotate deploy() to let us know that it has a side effect.
That is the purpose of cache control.
dagger.io/blog/cache-control…