Skip to content

Releases: chanzuckerberg/miniwdl

v1.12.0

06 May 08:25
Compare
Choose a tag to compare

PyPI version Anaconda-Server Badge Getting Started

  • 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
Compare
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
Compare
Choose a tag to compare
v1.11.0

v1.10.0

15 May 08:33
Compare
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
Compare
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
Compare
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

v1.8.0

25 Nov 08:23
Compare
Choose a tag to compare
  • In scatters, embed a string representation of the scatter variable in each call's logs and run subdirectory structure.
    • Facilitates identification of the call processing a given sample, but the string tag must be derived heuristically.
    • The tag length can be adjusted by config [scheduler] scatter_max_tag (0 to disable the new tagging).
  • Add config [file_io] use_relative_output_paths = true to flatten the out/ links structure. (#606 @rhpvorderman)
    • The generated link path relative to out/ reflects the path relative to the original task working directory.
    • Fails in the event of an output link path collision (e.g. a workflow outputting files with colliding names generated by different calls).
  • Fix out/ link directory structure for Maps (where subfolders used numeric indexes even if the map keys were suitable path components).
  • Fix postprocessing absent File?/Directory? task outputs. (#614 @rhpvorderman)
  • Fix parsing string literals ending with escaped backslash, e.g. "foo\\".
  • miniwdl zip: Fix archival of local WDL that imports a remote URI. (#610 @yunhailuo)

WDL version development features (experimental & subject to change)

  • openwdl/wdl#414 Multi-line strings: the <<< >>> task command delimiters can now be used to write multi-line string literals wherever needed.
  • openwdl/wdl#504 Support Defining Environment Variables Within a Task: task input declarations can be prefixed by the keyword env to bind the input as an environment variable for the command (an alternative to WDL command interpolations/placeholders).

v1.7.1

02 Oct 10:20
Compare
Choose a tag to compare
  • miniwdl run: adapt to importlib_metadata v5.0.0 removing certain API methods
    • Fixes AttributeError: 'EntryPoints' object has no attribute 'get' on startup
    • To keep using an older miniwdl version, pip3 install importlib_metadata~=4.0
  • miniwdl check: warning for certain string coercions that will become invalid in a future miniwdl version (#596)
  • miniwdl zip: handle imports with single-quoted URIs (#601 @cvaske-clear)

v1.7.0

22 Aug 06:32
Compare
Choose a tag to compare
  • Directory localization from Google Cloud Storage (gs://.../) (#578 @cvaske)
  • Config option [file_io] allow_any_input = true (env MINIWDL__FILE_IO__ALLOW_ANY_INPUT=true) allows workflows to read any file/directory on the host filesystem, instead of (default) only paths the operator expressly specified as workflow inputs.
    • (Security / Potentially Breaking) closes a few cases in which this access check was previously omitted, such as a workflow outputting a specific host path without calling any task on it. Thus, some workflows that previously ran on default settings may now need this option to be set (or, preferably, refactored to explicate their inputs).
  • Singularity backend: optionally cache *.sif image files in a local directory (#579 @rhpvorderman)
  • Fix several bugs, and improve error messages, related to reading arrays of nested structs from JSON inputs or read_json() (#580)
  • Fix potential deadlocks with scattered/nested subworkflow calls (#591)

v1.6.0

08 Jul 09:24
Compare
Choose a tag to compare
  • Internal improvements to plugin API for adding container backends, which is now better-documented through miniwdl-backend-example
  • miniwdl check: new UnexpectedRuntimeValue flags unexpected types in task runtime{} entries
  • miniwdl run no longer creates .WDL_File dotfiles under the out/ subdirectory. Directory outputs are still marked by .WDL_Directory dotfiles alongside, which suffice to distinguish them from subdirectories corresponding to compound types.