In nf-core, we’ve been excited to adopt Wave to automate software container builds, and have been looking for the right way to do it. With the announcement of Seqera Containers we felt it was the right time to put in the effort to migrate our containers to be built using Wave, using Seqera Containers to host the container images for our modules. You can read more about our motivation for this change in Part 1 of this blog post.
Here, in Part 2, we will dig into the technical details: how it all works behind the curtain. You don’t need to know or understand any of this as an end-user of nf-core pipelines, or even as a contributor to nf-core modules, but we thought it would be interesting to share the details. It’s mostly to serve as an architectural plan for the nf-core maintainers and infrastructure teams.
These pin the exact dependency stack used by the build, not just the top-level primary tool being requested. This effectively removes the need for conda to solve the build and also ships md5 hashes for every package. This will greatly improve the reproducibility of the software environments for conda users and the reliability of Conda CI tests.