Releases: common-workflow-language/cwl-v1.2
Official CWL v1.2.1
There are no new features nor behavior changes in CWL v1.2.1 as compared to CWL v1.2.0. v1.2.1 fixes only typos, adds clarifications, and adds additional conformance tests. Some changes to the schema defining CWL have been made to aid the auto-generation of libraries for the reading and writing of CWL documents.
Documents should continue to specify cwlVersion: v1.2
. However, when reporting results from running the CWL conformance tests, please do report all three components; for example "99% of CWL v1.2.0 required tests" or "100% of CWL v1.2.1 required tests".
For full details, see the CWL v1.2.1 changelogs for the Workflow and CommandLineTool standards.
Official CWL v1.2.0
Some highlights of this version:
Conditional execution of workflow steps
A workflow step can now have a “when” field with an expression that determines whether the workflow step is executed or not. Skipped workflow steps produce “null” outputs.
A workflow step input parameter may be connected to multiple sources. When those sources are conditional steps, some results may be “null”. The “pickValue” field on a workflow input parameter lets you specify how to select which value to use among multiple sources.
Abstract Operations
To facilitate the use of CWL to describe abstract workflows that are not necessarily ready to execute, there is a new “Operation” process type. A process can now declare an “intent” that identifies its conceptual purpose (for example, using an “Operation” identifier from the EDAM ontology http://edamontology.org/).
Absolute paths for container inputs
It is now possible to have an absolute path in the entryname field in InitialWorkDirRequirement when running in a mandatory container. Together with DockerRequirement.dockerOutputDirectory this makes it possible to control the locations of both input and output files when running in containers.
Other improvements
Clarified there should be no hard coded size limit for files that are created on the fly from expressions. This makes it more reliable to create configuration or input files on the fly based on CWL input parameters. Also clarified that non-File objects, arrays and numbers returned by parameter references or expressions in Dirent.entry are JSON serialized to produce file contents.
The “coresMin” and “coresMax” fields of ResourceRequirement may now request fractional CPUs. Other fields of ResourceRequirement now accept floating point values as well.
Escaping in string interpolation is now specified. The new standard is an improvement over the previous de-facto “cwltool” behavior; common cases such as pasting bash scripts into CWL no longer need extra backslash escapes.
Availability
Support for v1.2 is available immediately in the reference runner, cwltool 3.0.20200807132242. Support for CWL v1.2 on other CWL platforms is in the works, check with your vendor to find out their plans.
Acknowledgements
Authors and contributors to v1.2:
Peter Amstutz [email protected], Curii Inc. / Arvados; https://orcid.org/0000-0003-3566-7705 @tetron
Michael R. Crusoe [email protected], CWL Project Lead; https://orcid.org/0000-0002-2961-9670 @mr-c
Kaushik Ghose [email protected], Seven Bridges Genomics, Inc; https://orcid.org/0000-0003-2933-1260 @kghose
John Chilton [email protected], Galaxy Project, Pennsylvania State University; https://orcid.org/0000-0002-6794-0756 @jmchilton
Michael Franklin [email protected], Peter MacCallum Cancer Centre and University of Melbourne; https://orcid.org/0000-0001-9292-1533 @illusional
Bogdan Gavrilovic [email protected], Seven Bridges Genomics; https://orcid.org/0000-0003-1550-1716 @bogdang989
Stian Soiland-Reyes, University of Manchester; https://orcid.org/0000-0001-9842-9718 @stain
The CWL team would also like to thank the Chan-Zuckerberg Initiative Essential Open Source for Science program for supporting a portion of this work via their award to Curii Inc.
Thank you for your support,
The CWL leadership team.
draft CWL v1.2.0-dev5
Add ORCID for Bogdan