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

Consider properties for exposing version of a language #39

Closed denis-yuen closed 5 years ago

denis-yuen commented 6 years ago

For example, a workflow might be written in CWL draft-3 vs v1.0. And WDL also has versions. Instead of relying on knowledge of the language, we should expose a property that simply indicates what version a workflow or tool is written in (at least on a version by version basis)

Idea/pain point by @jaeddy

┆Issue is synchronized with this Jira Story ┆containerName: GA4GH tool-registry-service ┆Issue Number: TRS-8

jaeddy commented 6 years ago

Thanks @denis-yuen — was starting to create this issue earlier but got distracted. I think this would make sense to include as a property for descriptor (not necessarily for the tool entry):

  ToolDescriptor:
    type: object
    description: A tool descriptor is a metadata document that describes one or more tools.
    required:
      - type
    properties:
      type:
        $ref: '#/definitions/DescriptorType'
      ### PROPOSED ADDITION ###
      type_version:
        type: string
        description: The specification version corresponding to the descriptor type (e.g., v1.0 for CWL or draft-3 for WDL).
      ### END ###
      descriptor:
        type: string
        description: The descriptor that represents this version of the tool.
      url:
        type: string
        description: >-
          Optional url to the underlying tool descriptor, should include version
          information, and can include a git hash
        example: >-
          https://raw.githubusercontent.com/ICGC-TCGA-PanCancer/pcawg_delly_workflow/ea2a5db69bd20a42976838790bc29294df3af02b/delly_docker/Delly.cwl

Not sure if we need enums (they'd need to be conditional).

denis-yuen commented 6 years ago

As a property for ToolDescriptor, that makes sense. I'd vote for it.

Not sure about enums. That seems to mean that we'd be forced to release a new version of the schema to support a new version of cwl/wdl

garyluu commented 6 years ago

ToolDescriptor isn't even part of the schema anymore

denis-yuen commented 6 years ago

@garyluu It could be implemented on Filewrapper. But realistically, we'll probably have to punt this to the next version of TRS/Dockstore.

cjllanwarne commented 6 years ago

Does #59 provide a sensible way to expose this information (ie an optional field on DescriptorType)?