common-workflow-language / common-workflow-language/cwl-v1.2

Clarify type system

Open
#78 7 comments 0 reactions 1 assignee Claimed by @tetron View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.