common-workflow-language / common-workflow-language/cwl-v1.2
Clarify type system
- Dominant language
- Common Workflow Language
- Stars
- 45
- Forks
- 28
- PR merge metrics
- No merged PRs in 30d
Description
There are a few topics that you need to read to get your head around the CWL type system. Many of these are located in separate parts of the specification, which do not link to each other. These topics include:
* The list of CWL type symbols ([5.1.6](https://www.commonwl.org/v1.2/CommandLineTool.html#CWLType)). This is located inside section 5.1 CommandInputParameter, even though it's also relevant to outputs (section 5.2) amongst others
* The question mark notation e.g. `string?`, and the bracket notation, e.g. `string[]` ([2.4](https://www.commonwl.org/v1.2/CommandLineTool.html#Document_preprocessing))
* The notion that "`` or `null`" conceptually means "this value is optional". This is described broadly in the `inputs` field of [section 5](https://www.commonwl.org/v1.2/CommandLineTool.html#CommandLineTool), but not explicitly
I would like to suggest refactoring this in some way. My preference would be to add a `2.x` subsection (part of the section 2: Data Model), called something like "Type System", which explains *all* of these concepts holistically, and in one place, and this section is then linked to by the various other parts of the spec that demand it.
Failing that, these sections should at least have a link to each other to facilitate an understanding of the whole type system.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.