Releases: dnanexus/dxWDL
Cromwell style inputs and defaults
Allow easy setting of workflow defaults. Added the -defaults
flag that takes Cromwell style key-value pairs. These defaults are embedded into the compiled DNAx workflow.
Hashes and build improvements
- Use hashes instead of files for non-native dx types
- Do not use the help field in applet input/output arguments to carry
WDL typing information. - Fold small text files into the applet bash script. This speeds up the 'dx build'
command, and avoids uploading them as separate platform files. - Replace 'dx build' with direct API calls, additional compilation speedup.
Improved compilation speed
- Much better dependency checking during compilation
- Create workflow in a single API call
- Use bulk-describe when compiling applets
- YAML for intermediate code is more readable, and contains all dependency information
Objects and compiler speed ups
- WDL objects (experimental)
- Type coercion
- Faster compilation when applets already exist. Using bulk describe API, instead
of looking up each applet separately. - Adding checksum to dx:workflow objects, recompile only if it has not changed
- Specified behavior of input/output files in doc/Internals.md
Declaration attributes (experimental)
Experimental syntax allows setting attributes on a WDL declaration. The semantics are defined by the runtime engine. For example, the diff
task sets the streaming attribute on its two input files. This is interpreted by dxWDL to mean that A
and B
should not be downloaded, but streamed directly from the cloud.
task diff {
File a { stream: true}
File b { stream: true}
runtime {
docker: "ubuntu:16.04"
}
command {
diff ${a} ${b} | wc -l
}
output {
Int result = read_int(stdout())
}
}
Minor fixes
Improvements to files downloaded as streams.
WOM, and minor fixes
- Upgrade to wdl4s version 0.15 (WOM)
- Enable several compiler warnings, removing unused imports
- Bug fixes:
- Wrong dx project name when using multiple shells, and
different projects - Better handling of errors from background 'dx cat' processes.
- Wrong dx project name when using multiple shells, and
Streaming with docker tasks
Support for tasks that use docker, and want to stream input files.
File download streaming
File download streaming is an optimization appropriate when a task needs to look at a file sequentially, and only once. Mark an input file as "stream" in the parameter_meta section, and the compiler will generate the right code.
Conditionals
WDL conditionals are supported.