Skip to content

Commit 4cf7e7a

Browse files
committed
Merge branch 'main' into refresh_from_1.2.1-proposed
2 parents f14aa30 + 55f3063 commit 4cf7e7a

File tree

3 files changed

+1
-172
lines changed

3 files changed

+1
-172
lines changed

.github/workflows/cwltool.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
- uses: actions/setup-python@v5
2323
with:
2424
python-version: '3.9.x'
25-
25+
2626
- name: Setup prerequirements
2727
run: pip install "cwltest>=2.3" pytest-xdist "cwltool>=3.1.20230213100550"
2828

Workflow.yml

Lines changed: 0 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -34,182 +34,12 @@ $graph:
3434
- {$include: intro.md}
3535

3636
- |
37-
## Introduction to the CWL Workflow standard v1.2.1
38-
39-
There are no new features nor behavior changes in CWL v1.2.1
40-
as compared to CWL v1.2.0. v1.2.1 fixes only typos, adds clarifications,
41-
and adds additional conformance tests. Some changes to the schema defining
42-
CWL have been made to aid the auto-generation of libraries for the reading
43-
and writing of CWL documents.
44-
45-
Documents should continue to specify `cwlVersion: v1.2`. However, when
46-
reporting results from running the CWL conformance tests, please do report
47-
all three components; for example "99% of CWL v1.2.0 required tests" or
48-
"100% of CWL v1.2.1 required tests".
49-
50-
See also the [CommandLineTool v1.2.1 changelog](CommandLineTool.html#Changelog_for_v1.2.1)
51-
and the [Schema-Salad v1.2.1 changelog](SchemaSalad.html#Changelog_for_v1.2.1).
52-
53-
## Changelog for v1.2.1
54-
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).
72-
* The [`WorkflowStep.run`](#WorkflowStep) field description now explicitly
73-
states that it can be either a string referencing an external document
74-
or an embedded Process. This was previously only stated indirectly.
75-
* The `outputSource` field of [`WorkflowOutputParameter`](#WorkflowOutputParameter)
76-
now explicitly states that workflow inputs can be referenced. The
77-
mandatory conformance test `output_reference_workflow_input` has been
78-
added to confirm this.
79-
* The example list of [process requirements](#Requirements_and_hints) that
80-
can be inherited from a parent `Workflow` by a `CommandLineTool` was
81-
incomplete in CWL v1.2; `LoadListingRequirement`, `WorkReuse`,
82-
`NetworkAccess`, `InplaceUpdateRequirement`, `ToolTimeLimit` are also
83-
valid.
84-
* The [BNF grammar description of CWL Parameter References](#Parameter_references)
85-
has been reformatted so that symbols get `code formatting`.
86-
* In CWL v1.2, the [outputs of `ExpressionTool`s](#ExpressionToolOutputParameter)
87-
are never type-checked due to a long-standing bug in the CWL reference
88-
implementation. This has been made explicit along with the plan to fix
89-
this oversight in CWL v1.3.
90-
* The purpose and valid circumstances for using `Workflow.id`, `ExpressionTool.id`,
91-
or `Operation.id` have been made more explicit: It is a unique identifier
92-
for that Process; Only useful for when those are in a `$graph`. This `id`
93-
value should not be exposed to users in graphical or terminal user interfaces.
94-
95-
### Clarifications to the schema in CWL v1.2.1 to aid autogenerated libraries
96-
Many CWL parsing/generating libraries are autogenerated from the official schema
97-
for various programming languages by using [`schema-salad --codegen`](https://schema-salad.readthedocs.io/en/latest/#codegen-examples).
98-
99-
In CWL v1.2.1 we made many clarifications to the schema to enable faster
100-
parsing; or to produce better results for end users. These changes do not change
101-
the CWL syntax or its meaning; we are just now modeling it better.
102-
103-
* The schema for `Requirement`s has changed to enable faster parsing by
104-
autogenerated libraries. The `class` field is now a static enum with a
105-
single permissible value instead of a generic string (for example:
106-
`class: SubworkflowFeatureRequirement` for a `SubworkflowFeatureRequirement` hint or requirement.)
107-
This allows for autogenerated CWL parsers to recognize any requirement
108-
immediately instead of having to check for matching field names and
109-
valid values, as was done previously.
110-
* Likewise, the schema for `Workflow`, `ExpressionTool`, and `Operation`
111-
has also been changed to enable faster parsing; the `class` field is now a
112-
static enum with a single permissible value (`class: Workflow`,
113-
`class: ExpressionTool`, `class: Operation`) instead of a generic string.
114-
* The schema for the `hints` field of `Workflow`, `ExpressionTool`, and `Operation`
115-
has been expanded from: `Any[]?` to `["null", { type: array, items: [ ProcessRequirement, Any] } ]`.
116-
This allows autogenerated CWL parsers to deserialize any of the standard
117-
CWL hints instead of forcing the users of those parsers to convert the
118-
unserialized hints to normal objects themselves.
119-
* The schema for [`WorkflowOutputParameter.outputSource`](#WorkflowOutputParameter)
120-
had the wrong [`refScope`](SchemaSalad.html#JsonldPredicate) of `0` instead
121-
of `1`; This will correctly remove the `id` of the workflow itself when
122-
searching for the source of this output.
123-
* Everywhere the schema allows a value of type `long` we also explicitly
124-
allow a value of type `int`: [`File.size`](#File), [`ToolTimeLimit.timelimt`](#ToolTimeLimit).
125-
By JSON rules this is implicit, but by making it explicit we aid
126-
autogenerated CWL libraries especially in languages such as Java.
127-
* The schema for the `default` field of [WorkflowInputParameter](#WorkflowInputParameter),
128-
[WorkflowStepInput](#WorkflowStepInput), and [OperationInputParameter](#WorkflowStepInput)
129-
has been expanded from `Any?` to `["null", File, Directory, Any]` so that
130-
autogenerated CWL libraries will deserialize any `File` or `Directory`
131-
objects automatically for the user.
132-
* The schema for the `hints` field of `Workflow`, `ExpressionTool`, and `Operation`
133-
has been expanded from: `Any[]?` to `["null", { type: array, items: [ ProcessRequirement, Any] } ]`.
134-
This allows autogenerated CWL parsers to deserialize any of the standard
135-
CWL hints instead of forcing the users of those parsers to convert the
136-
unserialized hints to normal objects themselves.
137-
138-
### Updated Conformance Tests for v1.2.1
139-
* Conformance tests are now referred to by their textual identifiers (`id`).
140-
Previously this was the `label` field. Tests without a `label`/`id` have
141-
been given one.
142-
* `direct_required`, `direct_required_nojs`, `conditionals_nested_cross_scatter`,
143-
`conditionals_nested_cross_scatter_nojs`: Marked the workflow outputs as
144-
optional to remove ambiguity for these conditional `when` tests;
145-
allowing conformant CWL runners to be more strict in their interpretation
146-
of the typing rules, if they choose so.
147-
* `timelimit_basic_wf`: The timeout has been increased from three seconds
148-
to eight seconds to accommodate some runners who count container startup
149-
time in the total.
150-
* `timelimit_invalid_wf`: The timing on this test was updated from shorter
151-
values to accommodate the startup time of certain container runners, the
152-
previous timelimit of 5 seconds was too short, which is why it is now
153-
20 seconds.
154-
* The file `tests/wc-tool.cwl` was adapted to produce the same results on
155-
BSD systems (like macOS) as GNU/Linux systems. This improved
156-
compatibility for the following tests:
157-
`nested_workflow_noexp`, `wf_wc_parseInt`, `nested_workflow`, `embedded_subworkflow`,
158-
`step_input_default_value_overriden_2nd_step_noexp`, `step_input_default_value_overriden_2nd_step`,
159-
`step_input_default_value_overriden_2nd_step_null_noexp`, `step_input_default_value_overriden_2nd_step_null`,
160-
`step_input_default_value_overriden_noexp`, `step_input_default_value_nosource`,
161-
`step_input_default_value_nullsource`, `step_input_default_value_overriden`,
162-
`scatter_multi_input_embedded_subworkflow`, `workflow_embedded_subworkflow_embedded_subsubworkflow`,
163-
`workflow_embedded_subworkflow_with_tool_and_subsubworkflow`, `workflow_embedded_subworkflow_with_subsubworkflow_and_tool`,
164-
`scatter_embedded_subworkflow`, `step_input_default_value_noexp`,
165-
`step_input_default_value`, `valuefrom_wf_step`.
166-
167-
### New Mandatory Conformance tests for v1.2.1
168-
* `output_reference_workflow_input`: Test direct use of `Workflow` level
169-
input fields in the outputs.
170-
171-
### New Optional Conformance Tests for v1.2.1
172-
173-
#### `SchemaDefRequirement`
174-
* `schemadef_types_with_import`: Test `SchemaDefRequirement` with a
175-
workflow, with the `$import` under types. It is similar to `schemadef-wf`,
176-
but the `$import` is different.
177-
178-
#### `ScatterFeatureRequirement`
179-
* `simple_simple_scatter`: Two level nested scatter.
180-
* `dotproduct_simple_scatter`: Two level nested scatter: external
181-
dotproduct and internal simple.
182-
* `simple_dotproduct_scatter`: Two level nested scatter: external simple
183-
and internal dotproduct.
184-
* `dotproduct_dotproduct_scatter`: Two level nested scatter: external
185-
dotproduct and internal dotproduct.
186-
* `flat_crossproduct_simple_scatter`: Two level nested scatter: external
187-
flat_crossproduct and internal simple.
188-
* `simple_flat_crossproduct_scatter`: Two level nested scatter: external
189-
simple and internal flat_crossproduct.
190-
* `flat_crossproduct_flat_crossproduct_scatter`: Two level nested scatter:
191-
external flat_crossproduct and internal flat_crossproduct.
192-
* `nested_crossproduct_simple_scatter`: Two level nested scatter: external
193-
nested_crossproduct and internal simple.
194-
* `simple_nested_crossproduct_scatter`: Two level nested scatter: external
195-
simple and internal nested_crossproduct.
196-
* `nested_crossproduct_nested_crossproduct_scatter`: Two level nested scatter:
197-
external nested_crossproduct and internal nested_crossproduct.
198-
199-
#### `StepInputExpressionRequirement`
200-
* `default_with_falsey_value`: Confirms that "false"-like (but not 'null')
201-
values override any default.
202-
20337
## Introduction to CWL Workflow standard v1.3.0-dev1
20438
20539
This specification represents the latest development version from the
20640
CWL group.
20741
208-
209-
21042
## Changelog
211-
212-
21343
See also the [CWL Command Line Tool Description, v1.3.0-dev1 changelog](CommandLineTool.html#Changelog).
21444
For other changes since CWL v1.0, see the
21545
[CWL Workflow Description, v1.1 changelog](https://www.commonwl.org/v1.1/Workflow.html#Changelog)

tests/timelimit2-wf.cwl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/usr/bin/env cwl-runner
22
class: Workflow
33
cwlVersion: v1.3.0-dev1
4-
54
doc: |
65
The entire test should take ~24 seconds. Test that the 20 second
76
time limit applies to each step individually (so 1st step has 20

0 commit comments

Comments
 (0)