common-workflow-language / common-workflow-language/cwltool
support plugins for third party CWL registry APIs, etc
- Dominant language
- Python
- Stars
- 376
- Forks
- 255
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 12
Description
After #201 gets merged,
Starting with `cwltool.resolver`:
- [ ] adds support for resolver plugins using the `cwltool.resolver` [entry point](https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points)
- [ ] The GA4GH tool registry API resolvers in #201 is refactored to its own package which advertises compatibility using the `cwltool.resolver` [entry point](https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry-points)
- [ ] Once the above is working and tested, dependencies will be added to `cwltool` as named [extras](https://setuptools.readthedocs.io/en/latest/setuptools.html#declaring-extras-optional-features-with-their-own-dependencies) so that users can install them easier. Example: `pip install cwltool[ga4gh_registry, bioshadock]`
- [ ] Document this general pattern
- [ ] Document other parts of `cwltool` that could be extended with external plugins:
- [ ] support for object stores
- [ ] dependency resolution, see #214
- [ ] others places?
Contributor guide
Research direction
Start with cwltool.resolver and review the dependency on #201 before defining the resolver entry-point behavior. Then examine how the GA4GH registry resolvers, optional extras, object stores, and dependency resolution in #214 fit the proposed plugin pattern. Done means the plugin support is tested, dependencies can be installed as named extras, and the general pattern and extension points are documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100