Dagger
1.7K posts

Dagger
@dagger_io
A better way to ship. Test any codebase end-to-end, repeatably and at scale. Runs locally, in your CI server, or directly in the cloud.


FYI, Dagger is about to move off Buildkit, to a cleanroom reimplementation. This matters beyond Dagger. Buildkit is load-bearing infrastructure for a huge chunk of CI/CD. It has fundamental limitations that are getting harder to work around, but it's too entrenched and complex to just rip out. We've been chipping away at it for two years, replacing it piece by piece, and it's finally paying off. And we'll make sure the offramp is available to others too... More once it ships. DM me (here or on discord) if you're curious. #project-theseus-removing-buildkit" target="_blank" rel="nofollow noopener">dagger.io/changelog/#pro…





FYI, Dagger is about to move off Buildkit, to a cleanroom reimplementation. This matters beyond Dagger. Buildkit is load-bearing infrastructure for a huge chunk of CI/CD. It has fundamental limitations that are getting harder to work around, but it's too entrenched and complex to just rip out. We've been chipping away at it for two years, replacing it piece by piece, and it's finally paying off. And we'll make sure the offramp is available to others too... More once it ships. DM me (here or on discord) if you're curious. #project-theseus-removing-buildkit" target="_blank" rel="nofollow noopener">dagger.io/changelog/#pro…


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-con…


The only 4 jobs that will remain at tech companies. Credits: @yrechtman
















