The proliferation of individual python package install definitions has continued and it has spread to some MSI managed tools. I worry about the tedium I will have to endure in the future if that becomes an established best practice :) so I have implemented the python version of what I had described in this thread: As patch: https://github.com/jmchilton/galaxy-central/commit/161d3b288016077a99fb7196b... Pretty version: https://github.com/jmchilton/galaxy-central/commit/161d3b288016077a99fb7196b... I understand that there are going to be differing opinions as to whether this is the best way forward but I thought I would give my position a better chance of succeeding by providing an implementation. Thanks for your consideration, -John On Wed, Apr 17, 2013 at 3:56 PM, Peter Cock <p.j.a.cock@googlemail.com> wrote:
On Tue, Apr 16, 2013 at 2:46 PM, John Chilton <chilton@msi.umn.edu> wrote:
Stepping back a little, is the right way to address Python dependencies?
Looks like I missed this thread, hence: http://lists.bx.psu.edu/pipermail/galaxy-dev/2013-April/014169.html
I was a big advocate for inter-repository dependencies, but I think taking it to the level of individual python packages might be going too far - my thought was they were needed for big 100Mb programs and stuff like that.
It should work but it is a lot of boilerplate for something which should be more automated.
At the Java jar/Python library/Ruby gem level I think using some of the platform specific packaging stuff to creating isolated environments for each program might be a better way to go.
I agree, the best way forward isn't obvious here, and it may make sense to have tailored solutions for Python, Perl, Java, R, Ruby, etc packages rather than the current Tool Shed package solution.
I've like to be able to just continue to write this kind of thing in my tool XML files and have it actually taken care of (rather than ignored):
<requirements> <requirement type="python-module">numpy</requirement> <requirement type="python-module">Bio</requirement> </requirements>
Adding a version key would be sensible, handling min/max etc as per Python packaging norms.
Peter