You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
See also the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1)
53
53
54
54
## Changelog for v1.2.1
55
-
56
-
* The schema for `Requirement`s has changed to enable faster parsing by
57
-
autogenerated libraries. The `class` field is now a static enum with a
58
-
single permissible value instead of a generic string (for example:
59
-
`class: DockerRequirement` for a `DockerRequirement` hint or requirement.)
60
-
This allows for autogenerated CWL parsers to recognize any requirement
61
-
immediatelly instead of having to check for matching field names and
62
-
valid values, as was done previously.
63
-
* Likewise, the schema for `CommandLineTool` has changed to enable faster parsing by
64
-
autogenerated libraries. The `class` field is now a static enum with a
65
-
single permissible value (`class: CommandLineTool`) instead of a generic
66
-
string.
67
-
This allows for autogenerated CWL parsers to recognize any `CommandLineTool`
68
-
immediatelly instead of having to check for matching field names and
69
-
valid values, as was done previously.
70
-
* The schema for the `CommandLineBinding.position` field now has an explicit
71
-
default value of `0`. Previously this was only expression textually in
72
-
the description of that field.
73
-
* The schema for the `File.streamable` field now has an explicit default
74
-
value of `false` to match the textual description.
75
-
76
-
Note: Other fields like `ResourceRequirement.coresMin`, `.coresMax`,
77
-
`.ramMin`, `.ramMax`, `.tmpdirMin`, `.tmpdirMax` have not had defaults
78
-
set in the schema so that parsers can discriminate easily between a
79
-
value not provided and the default value (`0`).
80
-
* Everywhere the schema allows a value of type `long` we also explictly
81
-
allow a value of type `int`. By JSON rules this is implicit, but by
82
-
making it explicit we aid autogenerated CWL libraries especially in
83
-
languages such as Java.
55
+
* CWL has been assigned an official IANA Media Type of [`application/cwl`](https://www.iana.org/assignments/media-types/application/cwl)
56
+
for either JSON or YAML format. For JSON formatted CWL documents, [`application/cwl+json`](https://www.iana.org/assignments/media-types/application/cwl+json)
57
+
has also been assigned and can be used. For specifying a YAML formatted
58
+
CWL document, one can use `application/cwl+yaml` but that is not an official
59
+
IANA media-type yet; as of 2023-07-23 the `+yaml` suffix has yet to be approved.
60
+
The above has been documented in the [Syntax](#Syntax) section.
61
+
* There is now an unofficial [JSON Schema for CWL documents](https://github.com/common-workflow-language/cwl-v1.2/blob/1.2.1_proposed/json-schema/cwl.yaml),
62
+
donated by Francis Charette-Migneault. This schema captures much, but not
63
+
all, of the potential complexity of CWL documents. It was created for
64
+
the [draft](https://docs.ogc.org/DRAFTS/20-044.html)
65
+
[OGC API - Processes - Part 2: Deploy, Replace, Undeploy](http://www.opengis.net/doc/IS/ogcapi-processes-2/1.0)
66
+
standard.
67
+
To support the testing of this unofficial JSON Schema for CWL, some of
68
+
the `should_fail: true` tests have had the label `json_schema_invalid`
69
+
added.
70
+
* For consistency, all references to `URI`s have been replaced with `IRI`s
71
+
(Internationalized Resource Identifiers).
84
72
* The [difference between `$()` and `${}`](#Expressions_(Optional)) were
85
73
clarified. We now make more explicit that `${...}` evaluates to
86
74
`(function() { ... })()`.
87
-
* The publisher of this document is now explictly named; it is the
75
+
* The publisher of this document is now explicitly named; it is the
88
76
[Common Workflow Language project](https://www.commonwl.org), a member
89
77
project of [Software Freedom Conservancy](https://sfconservancy.org/).
90
78
* The [Parameter References](#Parameter_references) section has been updated
@@ -100,9 +88,70 @@ $graph:
100
88
in the newly added [glossary](#Glossary): they are nonsensical values
101
89
that are swapped out with a real value later in the evaluation process.
102
90
Workflow and tool expressions **should not** rely on it nor try to parse it.
91
+
* The purpose and valid circumstances for using `CommandLineTool.id` has
92
+
been made more explicit: It is a unique identifier for that CommandLineTool;
93
+
Only useful for `CommandLineTool`s in a `$graph`. This `id` value should
94
+
not be exposed to users in graphical or terminal user interfaces.
95
+
* How `cwl.output.json` is used to perform [output binding](#Output_binding)
96
+
has been clarified, especially with regard to any `path` and `location`
97
+
fields for `File` and `Directory` objects referenced within. Two new
0 commit comments