I had been thinking the decomposed packages/ (#7524) would be an alternative to the @natefoo / @mvdbeek attempts to publish all of Galaxy to PyPI (https://github.com/galaxyproject/galaxy/issues/1472 | https://github.com/galaxyproject/galaxy/pull/921 | https://github.com/galaxyproject/galaxy/pull/5243). I was thinking the same modules would exist in a big galaxy-app thing for installing and in small libraries for embedding functionality into other applications. This would be a bit messy because it would be important the Galaxy libraries were never installed in a galaxy-app environment for instance - because there would be competing module definitions. In this way, it would be better to just have a single source of truth. Furthermore, we're making rapid progress on placing code into packages/.
Though it might slow down the Installable Galaxy initiative, I think we should try to put all the code into packages/ and just have them be the way to install Galaxy from PyPI.
Never publishing a big wheel with all the code in its big monolithic form would also mean that someday we could actually make packages/ the source of truth for particular modules - if we continue to grow to the point where we want to decompose development processes, governance, etc.. of parts of the Galaxy code base. I know a lot of people like the big monolithic approach and I'm not saying we would ever need to change... but realistically I think it doesn't scale indefinitely and it would be good to have the option open.
I think the path forward would be something like:
1) Put all the remaining modules in a galaxy-webapp package.
galaxy-core, galaxy-web-framework, and then break galaxy-core down even more... but this would all be optional, as-needed decompositions.galaxy-app (maybe?) that depends on our pinned requirements list and depends on fixed, pinned versions of all the Galaxy libraries. So it is really just a recipe for how to build a fixed, tested thing from our libraries. Everything else - scripts, web content, etc... would be placed in galaxy-webapp or things that it gets decomposed into.galaxy-webapp or galaxy-app.Though it might slow down the Installable Galaxy initiative, I think we should try to put all the code into
packages/and just have them be the way to install Galaxy from PyPI.
馃挴 I don't think you can slow down something that isn't moving :).
This sounds like a good plan to me, it'll have a lot of advantages down the road.
+1
I don't think you can slow down something that isn't moving :).
I did get halfway through merging dev into #921 a few months ago. 馃槅
sorry, didn't know that :). Anyway, some of this stuff we can probably merge in smaller consecutive PRs ? Lots of nice commits in there.
Such a nice hackathon project to be honest:
Could be our next go to standard project, after py3 support alsmost being done :)
Not yet official but please feel free to add it to https://docs.google.com/document/d/17fwd0VylUHPgcRxnm2zfQBRP8xeUROGI1hlvwSebVFo/edit?usp=sharing
fwiw since we started talking sub packages I have thought this is the endgame, so 馃憤 from me
Most helpful comment
Such a nice hackathon project to be honest: