Closed mvdbeek closed 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?
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.
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)
@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
@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.
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 ?
@martenson This is all a moving target right. There are several factors that prevent us from doing a perfect job at these things:
GALAXY_ROOT
.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).
galaxy.model
I didn't think scripts that used it should be a part of this project - they would be broken by design. In https://github.com/galaxyproject/galaxy/issues/1396 I made the case that as galaxy-lib materializes the next target should be "just enough" models to be dangerous. I should be possible to leverage the Galaxy data model without requiring web server components, a workflow runner, and IE backend.apt-get install galaxy
or pip install galaxy
should have access to this scripts - we can now pretty easily create a dependency.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.
@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.
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.
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.
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.