nf-core container download for downloading
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.
Indeed, a massive refactoring and rewrite of the nf-core download tool is required, that should
- Refactor the whole codebase into separate, more modular classes
- Make use of
nextflow inspectfor container detection. - Sport a separate container download CLI command. (Should also support docker then?)
- Implement the new GUI with Textualize
Any volunteers?
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.
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.