First off, note that draft-3 and version 1.0 are one and the same. This is a potential point of confusion.
The main improvements between WDL version 1.0 and draft-2 are:
-
Much improved syntax for the task Command Section. This allows mixing shell code and WDL code, which is required in tasks. The challenge is that these are two different languages, with different grammars but sharing symbols.
-
Well defined inputs for workflows and tasks. Previously, inputs and expressions were indistinguishable, and dxWDL required a heuristic to figure out when a variable was an input. The heuristic was sometimes wrong.
-
Addition of standard library methods, missing in draft-2. For example, flatten (https://github.com/openwdl/wdl/blob/master/versions/1.0/SPEC.md#arrayx-flattenarrayarrayx).
-
Structs https://github.com/openwdl/wdl/blob/master/versions/1.0/SPEC.md#struct-definition