-
Introduced the concept of "scoped types" to support the use of object-like values within the
hints
section while still keeping theObject
type as deprecated. -
Added new task
requirements
andhints
sections (#540 and #541), and deprecated theruntime
section -
Added new workflow
hints
section (#543), and movedallowNestedInputs
from workflowmeta
tohints
-
Deprecated 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
. -
Added the ability to access the actual values of
requirements
,meta
, andparameter_meta
at runtime. -
Added
fpga
requirement and reserved hint for requesting FPGA resources. -
Added
disks
andgpu
reserved hints for requesting specific resources. -
Added
contains_key
function to standard library. PR 603 -
Added exponentiation operator (
**
). -
Added
find
, andmatches
functions. -
Added
chunk
function for chunking an array into sub-arrays. -
Add
parameter_meta
section to struct definition. -
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.
-
Added
join_paths
function to join two or more paths. -
Added allowance for conversion between
Struct
types when certain criteria are met. -
Generalized
size
function to take any compound value. -
Added optional
default
parameter toselect_first
. -
Generalized
length
function to also acceptMap
,Object
, andString
arguments. -
Added multi-line strings. PR 602
-
Added the
Array[String] keys(Struct|Object)
function variant for getting the member names for a struct or object. -
Added
values
function for getting the values from aMap
. -
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 -
Added
contains
function for determining whether an array contains a specified value. -
Clarify how inputs with defaults are implicitly optional PR 464 by @mlin
-
Make
input:
optional in call bodies. PR 524 by @mlin. -
Added
Directory
type. PR 641 -
Added clarification that input files and directories should be treated as read-only. PR 642
-
Added JSON extended file/directory input/output format. [PR 643] (#643)
-
Clarified that local paths are always used when evaluating input/private/command expressions.
-
Clarified the meaning of a remote parent folder for the purposes of localization.
-
Clarified that accessing a non-existent member of an object, struct, or call is an error.
-
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.
-
Applied Errata to the 1.1.0 spec.
-
Updated most examples to adhere to the new specification for WDL tests.
-
Added missing
File
andversion
keywords to the list of reserved words. -
Added new sections or materially expanded existing sections:
- "Limited exceptions" to type coercion rules
- "Static Analysis and Dynamic Evaluation"
- "Task Input Localization"
- "Expression Placeholders" under "Command Section"
- Hidden types
-
Reformatted all tables.
-
Reorganzied the standard library.
-
Provided codespell configuration and workflow to catch typos. PR 530 by @yarikoptic.
-
Fixed typos, thanks to @yarikoptic, @sejyoti, @mmterpstra, @j23414, @jdavcs, @beukueb, @notestaff, @alberto-mg, @mperf!
-
Added Errata.
-
Clarified that the
sub
function requires a POSIX Extended Regular Expression (ERE). PR 243 by @rhpvorderman -
Added syntax for struct literals. PR 297 by @patmagee
-
Added engine functions for
min
andmax
. PR 304 by @pshapiro -
Added section on file outputs including optional outputs. PR 310 by @jtratner
-
Added reserved keys, explicit formats, and default values for runtime attributes and hints. PR 315 by @patmagee
-
Namespacing has been clarified. PR 340 by @DavyCats
-
Abbreviated syntax for call inputs bound to workflow-scoped values by name:
{input: x, y=b, z}
is shorthand for{input: x=x, y=b, z=z}
PR 365 by @mlin -
Write a specification for unsatisfied task inputs and nested optional inputs. PR 359 by @rhpvorderman
-
Adds an engine function for joining arrays of strings. PR 229 and PR 368 by @EvanTheB and @illusional.
-
Added an engine function for adding a suffix to an array of primitives as well as well as
quote
andsquote
engine functions. PR 362 @patmagee -
Added a required input and output format for workflow engines. PR 357
-
The input specification has been clarified. PR 314 by @geoffjentry.
-
Added a list of keywords that can not be used as identifiers. PR 307 by @mlin.
-
Empty call blocks have been clarified. PR 302 by @aednichols.
-
Optional and non-empty type constraints have been clarified. PR 290 by @mlin.
-
The way comments work has been clarified. PR 277 by @patmagee.
-
Implement string escapes in the Hermes grammar. PR 272 by @cjllanwarne.
-
Added
None
for explicitly stating that an optional variable is not defined. PR 263 by @rhpvorderman. -
Backported to 1.0: Fix a bug in the grammar regarding unescaped strings. PR 253 and PR 255 by @aednichols.
-
WDL Files should be encoded in UTF-8 now. String definitions have been clarfied. PR 247 by @EvanTheB.
-
The version
statement
can now be the first non-comment statement. So it can be stated below a license header for example. PR 245 by @ffinfo. -
Added a
keys
function to get an array of keys from a map. PR 244 by @ffinfo. -
Several bugs in the grammar have been fixed. PR 238 and PR 240 by @cjllanwarne.
-
Type conversions and meanings have been clarified. PR 235 by @EvanTheB.
-
Backported to 1.0: Imports are now relative to their current location. PR 220 by @geoffjentry.
-
Added conversion functions
as_pairs
andas_map
to convert betweenArray[Pair[X,Y]]
andMap[X,Y]
. PR 219 by @DavyCats. -
Add an
after
keyword to run a task after other tasks. PR 162 by @cjllanwarne.
- Rename lexer to
WdlV1Lexer
- Rename parser to
WdlV1Parser
- Rename
WdlComments
channel toCOMMENTS
- Remove
SkipChannel
- Rename
COMMENT
->LINE_COMMENT
, emit comments toCOMMENTS
channel - Add
Meta
mode for parsing meta sections - Parse whitespace between
command
and opening{
/<<<
withinCommand
mode, so that it is emitted to theHIDDEN
channel - Ignore trailing commas
- Formatting -
- use two spaces always for indentation
- always wrap statements (i.e. always put opening ':' and closing ';' on newlines)
- always use PascalCase for tokens within lexer modes
- Added ANTLR4 grammar