API migration notes...

This commit is contained in:
John Chilton
2022-09-20 18:11:39 -04:00
parent a8902e48c7
commit fcbaf62e05
2 changed files with 42 additions and 11 deletions
@@ -0,0 +1,42 @@
# Tool Shed Migration Notes
The Galaxy developer community has different intentions and ideas for the tool shed going forward including:
- a complete rewrite (https://github.com/hexylena/shed)
- merge the existing functionality that is needed into DockStore (https://dockstore.org/)
- a rewrite of Galaxy to just use GitHub directly (the Anton approach)
- spinning the codebase off as is (duplicating and freezing the Galaxy half) (https://github.com/galaxyproject/galaxy/pull/8830)
- spinning the code base while continuing reuse via Python packaging
There is largely agreement that the tool shed code is aging and if the UI should continue
to exist it should be rewritten. The ecosystem has evolved such that I think all parties would
also agree that all server access (by Galaxy or a new UI) should be via a tool shed API and should
be typed and well modelled.
This chart is meant to track what API endpoints are used where and how they are used to gauage
how conservative we should be in breaking backward compatiblity. This chart doesn't guarentee
endpoints will remain, will stay consistent, or even that a tool shed API will continue to exist.
It is just meant to track information and allow us to make clear choices. Nothing is scared here.
Things seemingly *NOT* used by Galaxy, Planemo, or Ephemeris. These are easy candidates for
for deletion instead of writing new tests and modernizing the API.
- reset_metadata_on_repositories
- remove_repository_registry_entry
- get_repository_revision_install_info
- get_installable_revisions
- The whole Groups API.
- The whole Repository Revisions API.
| api | Galaxy | Planemo | Ephemeris | Pydantic or API tests | Used for TS Functional Testing | Notes |
| --- | ------ | ------- | --------- | --------------------- | ------------------------------ | ----- |
| GET categories | ? | ? | ? | YES | NO | Easy to maintain/migrate |
| POST categories | NO | NO | NO | YES | YES | Easy to maintain/migrate |
| get_repository_revision_install_info | YES | | | | | NO | Used by install code. |
| get_ordered_installable_revisions | NO | NO | YES | YES | NO | used by complete_repo_information in ephemeris for shed_tools |
| reset_metadata_on_repository | NO | NO | NO | YES | NO | Bjoern said it was a thing that is done via the UI still |
| GET repositories/{repository_id}/metadata| Yes (getRepository in client?) | NO? | NO? | YES | NO | |
| tool search | NO | NO | NO | YES | NO | Community contributed - used by tool dog or something? |
| repo search | YES | NO | NO | YES | NO | Used by the Vue tool shed install interface. |
| repositories/{repository_id}/changeset_revision | NO | YES | NO | YES | NO | |
| POST repositories | NO | YES | NO | YES | NO | |
@@ -5,17 +5,6 @@ from ..base.api import ShedApiTestCase
COLUMN_MAKER_PATH = resource_path(__package__, "../test_data/column_maker/column_maker.tar")
# Things seemingly *NOT* used by Galaxy, Planemo, or Ephemeris...
# (perhaps we can delete instead of test?)...
# - reset_metadata_on_repository
# - reset_metadata_on_repositories
# - remove_repository_registry_entry
# - get_repository_revision_install_info
# - get_installable_revisions
# Non repositories API seemingly unused and seemingly better rewritten if wanted.
# - The whole Groups API.
# - The whole Repository Revisions API.
class ShedRepositoriesApiTestCase(ShedApiTestCase):
def test_create(self):
populator = self.populator