Skip to content

WDL 1.2

Latest
Compare
Choose a tag to compare
@jdidion jdidion released this 23 May 18:48
· 2 commits to wdl-1.2 since this release

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 and hints sections (#540 and #541) replace runtime.
  • Workflow hints section (#543).
  • fpga requirement and reserved hint for requesting FPGA resources.
  • disks and gpu reserved hints for requesting specific resources.
  • Implicit task variable that provides access the actual values of requirements, meta, and parameter_meta at runtime.

Struct Improvements

  • Structs can now have meta and parameter_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 603
  • values: get the values from a Map.
  • 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 to select_first.
  • Generalized length function to also accept Map, Object, and String 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 an Array[String] and return an Array[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 the Object type as deprecated.

What's Deprecated

  • runtime section (use requirements and hints instead).
  • Specifying allowNestedInputs in the workflow meta section (put it in workflow hints 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 the allow_nested_inputs hint is true.

New Contributors

Full Changelog: release-1.1.0...release-1.2.0