Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decompose tool shed packages. #14834

Closed
wants to merge 32 commits into from

Conversation

jmchilton
Copy link
Member

This commit creates three new packages - below a description of these packages and why they are being created.

galaxy-schema: This package contains the pydantic models that power the API. The purpose of packaging them is to ensure they can be reused by clients with minimal external dependencies. Reusing the schema in client code would very quickly provide rapid documentation and validation and static checking for Python clients using the Galaxy API.

galaxy-tool-shed-client: This package contains galaxy.tool_shed which contains all the code used to manage repositories installations. The purpose of this package is to allow reuse of the tool shed install code in other contexts without all of Galaxy (Planemo, ansible-galaxy-tools).

galaxy-tool-shed: This package contains the tool shed server code. This has been a long term project to allow the tool shed to be spun out but maintain real galaxy dependencies and maintain testing. More discussions around this project can be found as part of #8830.

This PR builds on #14833.

How to test the changes?

(Select all options that apply)

  • This is a refactoring of components with existing test coverage.

License

  • I agree to license these and all my past contributions to the core galaxy codebase under the MIT license.

…tions...

... so we can get the typing right and not depend on app.name.
…d ts versions.

Avoid all the big conditionals in the middle - again for stronger typing and flatter functions.
the correct home and allows better typing with actual Repository type annotations
Progress toward a separate backend.
This commit creates three new packages - below a description of these packages and why they are being created.

galaxy-schema: This package contains the pydantic models that power the API. The purpose of packaging them is to ensure they can be reused by clients with minimal external dependencies. Reusing the schema in client code would very quickly provide rapid documentation and validation and static checking for Python clients using the Galaxy API.

galaxy-tool-shed-client: This package contains ``galaxy.tool_shed`` which contains all the code used to manage repositories installations. The purpose of this package is to allow reuse of the tool shed install code in other contexts without all of Galaxy (Planemo, ansible-galaxy-tools).

galaxy-tool-shed: This package contains the tool shed server code. This has been a long term project to allow the tool shed to be spun out but maintain real galaxy dependencies and maintain testing. More discussions around this project can be found as part of galaxyproject#8830.
@jmchilton
Copy link
Member Author

So this fell apart on the tool validator importing and really using some more stuff from galaxy.tools. I'll close this and reopen a version that adds the schema and tool-shed packages and keep galaxy-tool-shed-client stuff as part of galaxy-app until I can get better handle on how tool validation fits into things.

@jmchilton jmchilton closed this Oct 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant