galaxyproject / ephemeris

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

Collect useful scripts from ansible roles? #2

Closed mvdbeek closed 8 years ago

mvdbeek commented 8 years ago

What do you think about putting a couple more scripts in here for better reference? Ping @jmchilton @bgruening @afgane

I'm thinking of

The first two can probably be combined.

jmchilton commented 8 years ago

These two...

Look perfect. The second one is actually a TODO item on this work (https://github.com/galaxyproject/planemo/pull/496) in planemo so that is particularly exciting to me personally.

The other two require more than bioblend and galaxy-lib - I don't necessarily think they belong on PyPI in that form? I wish they in galaxy 'core' scripts instead. That said if we added them today we would still want to target older versions of Galaxy so that probably wouldn't be enough huh? So I'd say - feel free to add them if you think they should be there - we may just have to exclude them from doc generation, testing, and linting I think because of import errors?

mvdbeek commented 8 years ago

I wish they in galaxy 'core' scripts instead

Yes, that makes sense to me.

Look perfect. The second one is actually a TODO item on this work (galaxyproject/planemo#496) in planemo so that is particularly exciting to me personally.

The generate_tool_list_from_ga_workflow_files.py has been written by @drosofff, so I'll leave the PR up to him. The other script could use a rework, since we don't need the admin api key anymore to get the toolshed repository entries.

afgane commented 8 years ago

Since scripts are piling on, there's also this one for installing reference data: https://github.com/gvlproject/gvl.ansible.filesystem/blob/master/files/scripts/install_genome_indices.py

(just adding it here FYI as I won't be able to add it until well after GCC though)

drosofff commented 8 years ago

@afgane looks nice ! Same for me, I have still some work to do on https://github.com/ARTbio/ansible-artimed/blob/gks/extra-files/generate_tool_list_from_ga_workflow_files.py and most probably will not be able to PR here until after GCC

bgruening commented 8 years ago

@mvdbeek good idea. We should move our scripts to this project. I guess a smal guideline what qualifies a script to be included here, vs. into Galaxy main would be nice.

Here is a small script to populate data libraries: https://github.com/bgruening/docker-galaxyp/blob/master/setup_data_libraries.py And in the Docker container we have scripts to install biojs components and tours, this should probably also end up here.

martenson commented 8 years ago

guideline what qualifies a script to be included here vs. into Galaxy codebase

Yes, please. This needs to be clarified.

As I see it this library should target to be eventually used in all Galaxy, BioBlend (would create cyclic dependency as @jmchilton pointed below), Planemo, and any other project that wants to inter/face the Galaxy plugin system. It needs to stay concise and minimal, as we already have problems with too many projects that are invisible/unclear for any outsider.

What I am resolving into is, that basically this library should remain under-the-hood deep-dev-only thing. User facing project is Galaxy - there shouldn't be more. Planemo and BioBlend are dev-facing.

@jmchilton ?

jmchilton commented 8 years ago

@martenson This is all a moving target right. There are several factors that prevent us from doing a perfect job at these things:

Within those restrictions though... a couple guidelines I would use, when I think about this and efforts such as breaking up Galaxy into pieces (https://github.com/galaxyproject/galaxy/issues/1396 and galaxy-lib).

I guess all the same principles of isolation and decoupling and preferring interfaces to implementation, etc... apply at the level of the libraries just as much as at the level of class design.

jmchilton commented 8 years ago

@martenson You changed your comment on me and made me look silly. I don't agree entirely and I don't disagree entirely either. I don't like your usage of the word "user" - I would use the word "deployer" - "user" of Galaxy to me in a bench scientist using the GUI.

[apt-get|brew|pip] install galaxy

That should have all the management scripts they need - yes IMO.

martenson commented 8 years ago

I am sorry for changing my comment while you were writing yours, I will do a better job in the future to post when ready.

mvdbeek commented 8 years ago

I guess we can close this, the last two scripts are now in ephemeris and the first two are merged in ansible-galaxy-extras and should eventually make its way to galaxy/scripts.

And I like @jmchilton's description:

this project is the realm for things that manage Galaxy but don't require Galaxy - management that leverages the API.

We may want to put that right into the README.rst.