Releases: openwdl/wdl
WDL v1.2.0
Overview
This release includes a new minor version of the WDL language, v1.2. This also introduces a new version of the specification, in this case, v1.2.0. Minor version releases include new, backwards compatible changes, such new types, new execution concepts, or the ability to better and more scalably run existing workflows.
What's New
Files and Directories
- Added
Directory
type (#641). - Added JSON extended file/directory input/output format (#643).
- Input files and directories should be treated as read-only (#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, respectively) replace theruntime
section. - Adds the 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 (#603).values
: 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]
(#627).
Other
- Exponentiation operator (
**
). - Multi-line strings (#602).
- Clarify that accessing a non-existent member of an object, struct, or call is an error.
- Inputs with defaults are implicitly optional (#464 by @mlin).
input:
is optional in call bodies (#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: v1.1.0...v1.2.0
WDL Specification v1.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 (#598 by @claymcleod). - Clarified that
read_bool
is case-insensitive, and added an example.
Full Changelog: https://github.com/openwdl/wdl/compare/v1.1.1..v1.1.2
WDL Specification v1.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
This is a pseudo-release tag that marks the location of themain
branch within the specification repository prior to the release of WDL v1.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.