Skip to content

Releases: chanzuckerberg/miniwdl

v1.2.2

Choose a tag to compare

@mlin mlin released this 28 Jul 10:25

PyPI version Anaconda-Server Badge Getting Started

Adds miniwdl run --env X to pass through environment variable X to the environment of all tasks, or --env X=foo to set X outright. (Can be supplied multiple times for different variables)

This is a non-standard side channel likely to cause portability problems for WDL tasks relying on it. It should be used only in certain circumstances where portability isn't a priority, for example passing through auth credentials for platform-specific APIs. Otherwise, it's usually better to pass explicit WDL inputs (and if necessary, set environment variables in the command script).

v1.2.1

Choose a tag to compare

@mlin mlin released this 27 Jun 08:27

Maintenance release:

  • Fix downloads failing on first attempt with --no-cache (put = true, get = false)
  • Fix the status bar's "ready" counter when the call cache is used
  • Set --no-cache for self-test
  • Failing self-tests generate a log file that can be attached to a support request
  • Suppress "stdout unused" warnings for downloader tasks

v1.2.0

Choose a tag to compare

@mlin mlin released this 08 Jun 10:28

Relax type-checking of inputs with defaults

WDL inputs declared with default initializers, input { T x = :default: }, can now be called with optional values whether or not their declared type carries the ? quantifier.

Implications & example

When called with None, the default applies if the declaration lacks the ? quantifier. This change simplifies passing optional overrides through from workflow to task, while the task internally defines the appropriate default:

workflow w {
  input {
    String? s_override
  }
  call t { input: s = s_override }
}

task t {
  input {
    String s = "some default"
  }
  ...
}

However, if caller expressly supplies None for an input that is declared optional, String? s = "some default", the WDL specification does not yet explicate whether s should take None or the default in this case. For now our implementation has it take None, but miniwdl check also flags the ambiguity with UnnecessaryQuantifier. See ongoing discussion: openwdl/wdl#464

The newly relaxed rule only applies for task/workflow call inputs; elsewhere, it remains necessary to use select_first() or select_all() to coerce an optional value to a non-optional type.

Fix bug causing runs with --no-cache to still use stale cached download, and other rare race conditions

Usability improvements for logs and error messages

v1.1.5

Choose a tag to compare

@mlin mlin released this 08 May 03:33
  • support task runtime.returnCodes per WDL 1.1 spec
  • insource docker image used for AWS CLI

v1.1.4

Choose a tag to compare

@mlin mlin released this 20 Apr 02:24

miniwdl run

  • Add -o stdout.json option to robustly redirect the outputs or error JSON (normally printed to standard output) to a file
    • unaffected if some plug-in or other code prints something else on standard output
  • Add --no-outside-imports to block WDL import statements from directories outside of that of the top-level WDL file (or a --path directory)
  • Improve certain error messages based on user feedback
  • PyYAML dependency replaces ruamel.yaml

v1.1.3

Choose a tag to compare

@mlin mlin released this 15 Mar 08:14
  • Reverts v1.1.2 change to paths in run outputs JSON, due to unintended interference with caching of successive task calls in workflows
  • Fix a rare error arising from concurrent tasks writing into the call cache at the same moment

v1.1.2

Choose a tag to compare

@mlin mlin released this 14 Mar 01:44

miniwdl run ops refinements

  • The run outputs JSON for call cache hits now refer to output files under the newly created out/ run directory, rather than out/ from the cached run
    • These are usually just symbolic links to the same files; with config [file_io] output_hardlinks, they're hardlinks to the same inodes
  • Insourced the docker image used for HTTP URI downloads using aria2c
  • Suppress the "running as root" warning when miniwdl is running inside a container

v1.1.1

Choose a tag to compare

@mlin mlin released this 08 Mar 06:02
342021e

miniwdl run ops refinements

  • Add option [scheduler] fail_fast = false to stop a workflow after a task failure only after letting other ongoing tasks finish normally
    • In contrast to default behavior of immediately terminating all ongoing tasks
    • Can be used with call caching to avoid necessarily discarding work in progress
  • Improve compatibility with filesystems' varying support for "flock"
  • With --log-json, produce both JSON and default log files in each run directory

v1.0.0 🚢 🎁 🎓 🍾

Choose a tag to compare

@mlin mlin released this 11 Feb 05:48
acce3ac

With thanks to CZI Science and all these cheery faces!

image

v0.11.3

Choose a tag to compare

@mlin mlin released this 10 Feb 10:23

The v0.11.x series will serve as the "release candidate" for miniwdl v1.0.0.

miniwdl run

  • [WDL 1.1] unzip() function
  • Under out/ directory, add dotfiles helping a crawling program to distinguish File and Directory outputs

miniwdl check

  • restore --no-shellcheck option (hidden) for compatibility