galaxyproject / ephemeris

Library for managing Galaxy plugins - tools, index data, and workflows.
https://ephemeris.readthedocs.org/
Other
27 stars 38 forks source link

possibility to install tools by version #62

Open bernt-matthias opened 6 years ago

bernt-matthias commented 6 years ago

It would be nice to have to possibility to install a tool by specifying a version (then the latest revision of the version should be installed / updated). See also https://github.com/galaxyproject/ansible-galaxy-tools/issues/46

rhpvorderman commented 6 years ago

@bernt-matthias Will look into this, since I am planning to work on shed-install anyway.

I think in this case the tool list yaml should be leading: If you specify a version, it should be installed. Period. The current behaviour as you describe is that it does not install a tool if it is already installed at another version. I will make this behaviour optional. Furthermore I want to add a "latest" option, that overrides all version statements and just gets the latest from the repo. (This is the default behaviour for new tools if a version is not specified. But it would be nice to apply this to tool lists with specified versions as well.)

bernt-matthias commented 6 years ago

This sounds excellent.

mvdbeek commented 6 years ago

Great, that's always appreciated!

If you specify a version, it should be installed.

That is (sort-of) already the case, the changeset revisions are being respected (as long as they are marked as installable). To get the latest revision I'd love to see a special keyword 'latest', but anything to advance this would be great.

rhpvorderman commented 6 years ago

That is (sort-of) already the case,

Yeah. I saw this in the code when I was looking at it. I will write some tests to verify this.

Just refactored most of the variables from it -> installed_tool and the like. Especially in the comparisons the variable names where not quite clear. But now that is a lot better. I will add a --latest flag to the argsparser which overrides all revisions, and try to get a latest keyword in the tool_list.

mvdbeek commented 6 years ago

I will write some tests to verify this.

Already done in https://github.com/galaxyproject/ephemeris/pull/58, but more tests are always good. Happy to see updated variable names.

rhpvorderman commented 6 years ago

@bernt-matthias I looked into this issue but it is very hard to implement this The toolshedclient returns this information:

[{u'changeset_revision': u'4afe13ac23b6',
  u'deleted': False,
  u'dist_to_shed': False,
  u'error_message': u'',
  u'name': u'velvet_toolsuite',
  u'owner': u'edward-kirton',
  u'status': u'Installed'}]

Version number is not there. There is version number information in the ToolShedClient instance. It would require a few afternoons work to get a version checking algorithm into place for shed-install. An easier way would be to extend the galaxy api to allow this feature (and then update bioblend). But that is outside the scope of ephemeris.

bernt-matthias commented 6 years ago

Agreed. So we should file an issue there?

rhpvorderman commented 6 years ago

Yes, it would then be a lot easier to get it into ephemeris.