ga4gh / tool-registry-service-schemas

APIs for discovering genomics tools, their metadata and their containers
Apache License 2.0
30 stars 18 forks source link

Procedure for adding new workflow languages #215

Open denis-yuen opened 2 years ago

denis-yuen commented 2 years ago

Currently, workflow languages are baked into TRS as an enum https://github.com/ga4gh/tool-registry-service-schemas/blob/2.0.0/openapi/openapi.yaml#L825-L827

This is trivially extended for new languages, but it would be nice to solve two issues 1) To co-ordinate enum values for new languages between releases in case there is a conflict 2) How can we query what languages does a TRS implementation support?

For 1) I wonder if we can just establish a JSON in the root of the repo akin to https://github.com/ga4gh/tool-registry-service-schemas/blob/develop/registry.json but as a mapping between enum values and languages

For 2) It seems we can take advantage of service-info https://github.com/ga4gh-discovery/ga4gh-service-info#extending-service-info-payloads

FYI @jmfernandez @wleepang to see if I captured this right

┆Issue is synchronized with this Jira Story ┆Project Name: Zzz-ARCHIVE GA4GH tool-registry-service ┆Issue Number: TRS-55

mr-c commented 2 years ago

FYI: CWL does have an IANA media type: https://www.iana.org/assignments/media-types/application/cwl

and the +json version https://www.iana.org/assignments/media-types/application/cwl+json

(+yaml is coming, once that suffix is approved)