Releases: openwdl/wdl
WDL 1.2
What's New
Files and Directories
- Added
Directory
type. PR 641 - Added JSON extended file/directory input/output format. [PR 643] (#643)
- Input files and directories should be treated as read-only. PR 642
- Local paths are always used when evaluating input/private/command expressions.
- Clarified the meaning of a remote parent folder for the purposes of localization.
Requirements and Hints
- The
requirements
andhints
sections (#540 and #541) replaceruntime
. - Workflow
hints
section (#543). fpga
requirement and reserved hint for requesting FPGA resources.disks
andgpu
reserved hints for requesting specific resources.- Implicit
task
variable that provides access the actual values ofrequirements
,meta
, andparameter_meta
at runtime.
Struct Improvements
- Structs can now have
meta
andparameter_meta
sections. - Relaxed the requirements on coercing object/map to struct - extra keys are allowed and ignored. Note that this may constitute a breaking change if you rely on a task to fail when coercing an object/map with extra keys.
- Allow conversion between
Struct
types when certain criteria are met.
Standard Library Functions
New
contains_key
: whether a Map or Object contain a specific member. PR 603values
: get the values from aMap
.find
: search for a regular expression in a string.matches
: whether a string match a regular expression.chunk
: split an array into sub-arrays.join_paths
: join two or more paths.contains
: whether an array contains a specified value.
Improved
- Generalized
size
function to take any compound value. - Added optional
default
parameter toselect_first
. - Generalized
length
function to also acceptMap
,Object
, andString
arguments. - Added the
Array[String] keys(Struct|Object)
function variant for getting the member names for a struct or object. - Added parameters to
read_tsv
that enable it to read field names from a header row or anArray[String]
and return anArray[Object]
. PR 627
Other
- Exponentiation operator (
**
). - Multi-line strings. PR 602.
- Clarify that accessing a non-existent member of an object, struct, or call is an error.
- Inputs with defaults are implicitly optional PR 464 by @mlin
input:
is optional in call bodies. PR 524 by @mlin.- The concept of "scoped types", to support the use of object-like values within the
hints
section while still keeping theObject
type as deprecated.
What's Deprecated
runtime
section (userequirements
andhints
instead).- Specifying
allowNestedInputs
in the workflowmeta
section (put it in workflowhints
instead). - The previously allowed behavior implied by setting
allowNestedInputs: true
where required task/subworkflow inputs could be left unsatisfied. Now all inputs either need to have a default value or have their value specified in the call inputs. Only optional task/subworkflow inputs that are not explicitly set in the call inputs may have their value set at runtime if theallow_nested_inputs
hint istrue
.
New Contributors
- @wleepang made their first contribution in #604
- @markjschreiber made their first contribution in #605
Full Changelog: release-1.1.0...release-1.2.0
WDL 1.1.2
What's Changed
- State that
Union
is also the type of someruntime
attributes. - Remove some syntax sections that were missed in 1.1.1.
- Clarify short-circuiting of boolean expressions (#199)
- Added requirement for tests to the RFC
- Clarifies number of sections allowed within
task
andworkflow
blocks.
PR 598 by @claymcleod - Clarified that
read_bool
is case-insensitive, and added an example.
Full Changelog: https://github.com/openwdl/wdl/compare/119f92c1a7c3ad7c1a00520b13861d5a14adec22..826bfbc1ab64a8d119bc66b0efc0ecb6382ce466
WDL 1.1.1
This is a patch release to the WDL 1.1 specification - there are no new features or changes to functionality.
In addition, we are changing to a separate-branch-per-version model for the GitHub repository. The branch for WDL 1.1 will become the repository's default branch.
Changes
- Introduce the concept of "hidden types"; declare that
None
is of the hidden typeUnion
- Add clarifications to several sections
- Fix lots of typos
- Organize the standard library hierarchically
- Convert most code examples to test cases
Details can be found in the pull request.
Legacy WDL specification repository
This is a tag for the main
branch of the WDL specification repository prior to the release of WDL 1.1.1
.
Going forward, each version of the specification will have its own branch, and the default branch on GitHub will be set to the branch for the current version.