hexylena / shed

alternative toolshed for galaxy
Other
2 stars 1 forks source link

RESTful API #3

Open jmchilton opened 8 years ago

jmchilton commented 8 years ago

Not sure if this is the best place to do it, but lets iterate on a RESTful API for how to fetch things to be installed. There was some desire to prefix these with something, any idea what that should be?

<installable_type> is one of galaxy_tool, galaxy_workflow, cwl_tool, cwl_workflow, galaxy_viz

hexylena commented 8 years ago

This is a fine place to do it :)

so

What motivates the [@revision] notation? In #1 it was mentioned "Tools need to have strictly increasing versioning.", are we saying this does not hold true for the others? or ... ?

jmchilton commented 8 years ago
hexylena commented 8 years ago
hexylena commented 8 years ago

"strictly increasing versioning" - are we requiring + enforcing semver?

jmchilton commented 8 years ago

@erasche Here is what Galaxy uses to determine lineage ordering:

https://github.com/jmchilton/galaxy-lib/blob/shed/galaxy/tools/toolbox/lineages/stock.py https://github.com/jmchilton/galaxy-lib/blob/shed/galaxy/tools/toolbox/lineages/stock.py#L49

Not the toolshed mind you, just what happens if you load two tools with the same ID in a tool panel.

I would replicate this because some people hate semver and I don't see a good reason to enforce it. If you want to do something more complicated that I'd be open to it as long as we update Galaxy.

I don't mind allowing multiple branches of tools as long as any unversioned operation gets the maximally versioned and not latest versioned tool.

hexylena commented 8 years ago

Super, works for me :)

hexylena commented 8 years ago

@jmchilton There's a VM sitting in the cloud with our names ssh pubkeys on it (root@shed.hx42.org, if you need to muck about with anything. Django admin password is in /root/passwords.txt)

I implemented enough of the "old" TS api that planemo can upload suites to it, virtually unchanged. https://shed.hx42.org/api/drf/installables

I'll work more on the new API going forward, but it was just so easy to implement the old one and call it a day...