nf-core / tools

Python package with helper tools for the nf-core community.
https://nf-co.re
MIT License
233 stars 187 forks source link

nf-core container download for downloading #2408

Open adamrtalbot opened 1 year ago

adamrtalbot commented 1 year ago

Description of feature

Break out the feature for downloading singularity containers from nf-core download and put it in it's own command line. When running nf-core download the tool could incorporate this function as part of it.

Modularity will help #2407 and possibly #2406 via breaking each tool into it's constituent components. The next step will be to give each it's own CLI.

MatthiasZepper commented 1 year ago

Indeed, a massive refactoring and rewrite of the nf-core download tool is required, that should

Any volunteers?

edmundmiller commented 2 months ago

Talking to @MatthiasZepper in Office Hours

I understood his recommendation is to separate into two separate commands nf-core containers - Using nextflow inspect or just the wave-api nf-core downloads - legacy anything pre tools 3.0

@MatthiasZepper Also pitched that an issue with nextflow inspect is the need for a profile. We could just skip nextflow inspect and pull all the environment.ymls and pass them to the wave-api, which will do it's hashing magic and return the containers. I think this is pretty clever.

MatthiasZepper commented 2 months ago

I just learned that Phil has already come up with a similar solution. Like him, I was also thinking of a custom config file with container specifications, like in POC1. The difference between our proposals is that Phil want to create it upfront and include it into pipeline releases, while I suggest that nf-core download could generate it when downloading the pipeline.

In either way, the first step to implementing the desired modularity would be to start work on #2940 and move the new cleaned class WorkflowRepo out of the download command to a separate file from which it can be imported into both, the new nf-core container command and the refactored download command.

Some more ramblings are here btw.