Skip to content

v1.13.0

Choose a tag to compare

@mlin mlin released this 20 May 06:54
7f3068f

v1.13.0 addresses several WDL 1.1 spec interoperability issues, with thanks to the reporting community members.

⚠️ These changes, while improving WDL spec compliance, bear slightly elevated risks of backwards-incompatibility with prior miniwdl versions. Please report any issues or unexpected behaviors for investigation.

Interoperability

  • dedent task commands before eval/interpolation (#674 @adamnovak)
  • allow float values for task runtime.cpu (#690 @adamnovak)
  • round() "half up" instead of "to even" (#698 @stxue1)
  • fix Array runtime typing issues (#699 #700 @stxue1)
  • allow trailing commas in meta arrays (#708 @adthrasher)
  • fix ValueError reading empty JSON into Map (#726 @ahvigil)
  • refactor typechecking for equatability & comparability (#736)
  • allow non-typesafe read_json(...) within arrays and if-then-else branches (#740 @ahvigil)

Runner

  • allow namespace prefix in task-only input JSON files (#693 @stxue1)
  • fix cache of task with empty outputs (#715 @adamnovak)
  • fix recognition of exponential notation in JSON/YAML run input files (#717 @sach244n)
  • --no-quant-check applies to comparison operators (#752 @stxue1)

Python WDL API

  • Multi-line strings (development/1.2 feature) get first-class AST representation as WDL.Expr.MultiLineString, which is dedented upon evaluation (instead of during parsing into WDL.Expr.String).
  • WDL.Type.* classes expose ty1.equatable(ty2) and ty1.comparable(ty2) operators, indicating whether it is valid to use the WDL == != or < <= > >= operators, respectively.