Installing tool requirements from an environment yaml file

Hi galaxy developers,

I have been exploring developing Galaxy tools, and I must say Galaxy is an incredible project!

As I understand, it is only possible to install tool requirements by declaring each of them at the <requirements></requirements> section.

Is there a reason why there is no option to provide the tool requirements in an environment YAML file? I think it will be much easier.

Another question is, I also see that there is no option to install pip tools, is this correct?

Really so much easier? I doubt it somewhat since a typical tool only has few requirements and there are usually other botllenecks than adding those few extra lines :slight_smile:

pip installs are not supported because they are not usually reproducible enough unless you freeze the entire dependency chain. It’s also fairly trivial to create a bioconda recipe for tools that just require a pip install and this increases the level of reproducibility a bit on its own and also allows people to build biocontainers for each bioconda build, which can then be used by appropriately configured Galaxy instances for a much higher degree of reproducibility.