Skip to content

Releases: chanzuckerberg/miniwdl

v1.13.1

25 Oct 04:30

Choose a tag to compare

This regular maintenance release addresses minor bugs and dependency issues.

  • CLI: replace bullet with questionary (#777 @bshifaw)
  • make JSON pair definitions case-insensitive (#789 @stxue1)
  • fix asyncio.get_event_loop() error in newer Python versions (#791 #793 @wleepang)
  • migrate pkg_resources usage to importlib_metadata (#794 #802 @hexylena)
  • fix miniwdl configure --cfg FILENAME_IN_CWD.cfg (#805 @hexylena)
  • ensure static type error for unknown fields in struct literals (#808 @gshiba)

Internal refactoring and implementation for WDL 1.2 continues in the background!

v1.13.0

20 May 06:54
7f3068f

Choose a tag to compare

PyPI version Anaconda-Server Badge Getting Started

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.

v1.13.0rc0

12 Apr 10:48

Choose a tag to compare

v1.13.0rc0 Pre-release
Pre-release

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

Because these changes bear small backwards-compatibility risks, we begin with release candidate v1.13.0rc0 that must be expressly requested with: pip install miniwdl==1.13.0rc0. Please report any issues or unexpected behaviors for investigation over the next few weeks.

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)

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.

v1.12.1

20 Jul 07:53

Choose a tag to compare

This maintenance release has no user-facing changes, but updates dependencies and modernizes the Python project tooling (#668) in preparation for the next development cycle.

v1.12.0

06 May 08:25

Choose a tag to compare

  • Fix coercions of Array[File] and Array[Directory] to Array[String] (#669 @john-smith, #681 @markjschreiber)
  • Ensure presence of optional fields in structs read from runner input JSON file (#686 @adthrasher)
  • miniwdl run: accept CLI inputs of compound types (pairs, maps, structs) as single-quoted JSON; also accept Array[Directory]
  • miniwdl check: warn when a document of an older WDL version imports a document of a newer WDL version
  • Dependency updates

v1.11.1

05 Nov 07:35

Choose a tag to compare

PyPI version Anaconda-Server Badge Getting Started

Maintenance release:

  • miniwdl input-template: add --no-namespace option to omit the top-level workflow name prefix
  • fix download caching when config [file_io] root is used (miniwdl-ext/miniwdl-aws#20 @staskh)
  • logging improvements and dependency updates

v1.11.0

13 Aug 03:15

Choose a tag to compare

v1.11.0

v1.10.0

15 May 08:33

Choose a tag to compare

  • WDL spec compatibility:
    • == and != accept optional operands (#634 @jdidion)
    • fix resolution of imported struct type aliases when the original struct name is reused in current document (#635 @jdidion)
    • WDL 1.1: allow placeholder options like sep= in string expressions outside of task commands (#633 @adamnovak)
    • WDL 1.1: disable a few version development features that had been inadvertently enabled for version 1.1 (multi-line strings and optional call: keyword)
  • allow extra JSON keys initializing structs (#524)
  • fix bug in WDL.Env.merge() that could resurrect previously-shadowed bindings (#637 @adamnovak)
  • miniwdl zip --additional to include any specified file(s) in the zip (#641 @rhpvorderman)

v1.9.1

26 Feb 19:42

Choose a tag to compare

  • Change singularity invocation from singularity run to singularity exec (#628 @adthrasher)
  • WDL version development:
    • Make the input: keyword optional in calls (openwdl/wdl#524)
    • miniwdl check: reduce spurious warnings on env task inputs used as environment variables instead of WDL interpolations (openwdl/wdl#504)

v1.9.0

28 Jan 08:41
9135bd3

Choose a tag to compare

  • Two potentially breaking changes:
    • Remove the default -l (login shell) flag that had been supplied to each task command bash interpreter starting in v1.5.3, but caused interoperability problems (#603). New config options mentioned below can restore this flag if necessary.
    • Disallow implicit coercions of Boolean? Int? Float? File? Directory? to (non-optional) String, which should never have been permitted (#596). These had been subject to miniwdl check deprecation warning since v1.7.1. They will still validate with --no-quant-check.
  • New config options (see default.cfg)
    • [task_runtime] command_shell and [task_runtime] command_preamble customize the task command bash interpreter. For example, to restore the login shell flag, set [task_runtime] command_shell = /bin/bash -l or environment MINIWDL__TASK_RUNTIME__COMMAND_SHELL='/bin/bash -l'
    • [file_io] chown to opt-out of the post-task chown of the working directory
    • [podman] exe to customize the invocation for the podman backend (for example, to remove sudo)
  • Relax PyYAML version requirements (#625 @adamnovak)
  • Improve MultipleDefinitions error messages (#622 @crabba)
  • Allow underscores in the short tags used to identify each iteration of a scatter
  • miniwdl zip: fix assertion error importing WDL from a sibling directory sharing a common basename prefix with the main directory