Releases: chanzuckerberg/miniwdl
v1.3.3
- Improves robustness of certain file system operations (affects reliability in network file systems with non-idempotent request retry patterns)
This version doesn't update the initial Singularity support while we still invite feedback on that.
v1.3.2
- Fix parsing of degenerate/empty
call some_task {}
in workflow body miniwdl run --copy-input-files-for some_task
to copy input files selectively (for named tasks only)- New minor configuration options for scalability tuning (see default.cfg for details)
v1.3.1
v1.3.0
Adds initial support for running WDL task containers using Singularity instead of dockerd. See #326 (comment) for further details & instructions. This feature isn't production ready yet, but meant for early testing by motivated users.
v1.2.3
Maintenance release:
- S3 downloader: with
[download_cli] host_credentials
, ensure boto3 ImportError surfaces to operator (#518 @CarlosBorroto) - S3 downloader: increase max attempts in retry logic
- bump dependencies
v1.2.2
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
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
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
v1.1.4
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