diff --git a/lib/tool_shed/test/functional/api_notes.md b/lib/tool_shed/test/functional/api_notes.md new file mode 100644 index 00000000000..18174ff96a9 --- /dev/null +++ b/lib/tool_shed/test/functional/api_notes.md @@ -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 | | diff --git a/lib/tool_shed/test/functional/test_shed_repositories.py b/lib/tool_shed/test/functional/test_shed_repositories.py index e5cb021242e..0f0fee3be3a 100644 --- a/lib/tool_shed/test/functional/test_shed_repositories.py +++ b/lib/tool_shed/test/functional/test_shed_repositories.py @@ -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