Releases: chanzuckerberg/miniwdl
Releases · chanzuckerberg/miniwdl
v1.12.1
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
- Fix coercions of
Array[File]
andArray[Directory]
toArray[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 acceptArray[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
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
v1.10.0
- 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 forversion 1.1
(multi-line strings and optionalcall:
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
- Change singularity invocation from
singularity run
tosingularity exec
(#628 @adthrasher) - WDL
version development
:- Make the
input:
keyword optional in calls (openwdl/wdl#524) miniwdl check
: reduce spurious warnings onenv
task inputs used as environment variables instead of WDL interpolations (openwdl/wdl#504)
- Make the
v1.9.0
- 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 tominiwdl check
deprecation warning since v1.7.1. They will still validate with--no-quant-check
.
- Remove the default
- 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 environmentMINIWDL__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
- 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 theout/
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).
- The generated link path relative to
- 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
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
- Fixes
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
- Directory localization from Google Cloud Storage (
gs://.../
) (#578 @cvaske) - Config option
[file_io] allow_any_input = true
(envMINIWDL__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)