Releases: chanzuckerberg/miniwdl
Release list
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-cachefor 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.jsonoption 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-importsto block WDL import statements from directories outside of that of the top-level WDL file (or a--pathdirectory) - Improve certain error messages based on user feedback
- PyYAML dependency replaces ruamel.yaml
v1.1.3
v1.1.2
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 thanout/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
- These are usually just symbolic links to the same files; with config
- 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
miniwdl run ops refinements
- Add option
[scheduler] fail_fast = falseto 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 🚢 🎁 🎓 🍾
With thanks to CZI Science and all these cheery faces!
v0.11.3
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 distinguishFileandDirectoryoutputs
miniwdl check
- restore
--no-shellcheckoption (hidden) for compatibility
