...
- ANTLR4 version bump to 4.13.1
- New value type
V_ForcedNull
is used to avoid an addition of an explicitnull
input to an Optional value. Previously, if a task was wrapped in a frag - in some cases Optionals without a value were forced to be an explicitnull
. This version fixes such behavior. - Draft-2 parser. Previous behavior: if
version
is not declared, it is assumed to bedraft-2
, which has no formal input definitions for tasks and workflows. However, if a user forgets to declare theversion
while working on workflow of a version greater thandraft-2
with formal definition ofinput
, the parser fails to follow the syntax and throws the errors not related to the version or the formatting of the input section. Here this behavior is fixed: ifversion
is not detected anddraft-2
is assumed, we check if theinput
section is defined and throw an exception in this case.
- Minor fixes and refactoring
- Added support for Directory type outputs for WDL 2.0 (aka development)
- Fix for V_Directory in Struct to Directory input
- Optional types are preserved when using outputs from the standard library functions without explicit declaration.
- Keep the docker container after a task finishes running, so users can debug docker related job failures.
- Runtime object is aware if it was created with default system requirements (
Runtime.isDefaultSystemRequirements
)
TAT.Workflow
has asource
attribute in analogy toTAT.Document
to be used for checksum calculation for App/Job reuse- Fixes evaluation of structs as input parameters of workflow/scatter: hash inputs are coerced from object to struct, and their optional elements are assigned to Null if not specified in job inputs.
- Input variables are now evaluated and added to the dependency graph, even when they are optional and not used. They need to be a part of the graph in the case when they are assigned to other (unused) variables for a proper expression evaluation.
- Correctly attaches to docker stdout/stderr
- Fixes
exec
command to correctly localize paths and handle return code when running in container
- Fixes
stderr()
function - previously it was returning the file for stdout - Update dxCommon version
- Updates code to compile with JDK11
- Updates build environment to JDK11, Scala 2.13.7, and SBT 1.5.7
- Update dxCommon version
- Fixes
eval.Meta.get
to respect override values
- Updates to latest dxCommon
- Fixes infinite loop when calling
wdlTools.eval.Runtime.contains
with "docker" or "container"
- Fixes parsing of placeholder options in draft-2 and 1.0 such that
default
andsep
are no longer treated as reserved words
- Breaking Change
Eval.applyMap
is changed toEval.applyAll
and takes aVector
rather thanMap
argument. This is done to ensure the expressions are evaluated in order in case there are dependencies between them. - Fixes parsing of
runtime.returnCodes
- Adds parameters for runtime and hint overrides to
Eval.Runtime
andEval.Meta
classes
- No longer unwraps optional type for an input with a default value
- Automatically changes struct declaration with map literal assignment to an object literal
- Adds
Runtime.returnCodes
accessor - Fixes formatting of single-line expressions in code generator/formatter
- Fixes default memory value for WDL
development
- Always allow coercion to
T_Any
- Code generator/formatter handles empty blocks
- Handles accessing object fields within placeholders
- Allows comparison of object fields to
String
- Updates dxCommon version, which fixes the output of the
printTree
command - Allow primitive ->
String
coercion for WDL versions <= 1.0 - Fixes parsing of unary operations
- A
parameter_meta
key that does not correspond to an input or output parameter is now ignored with a warning - Fixes caching of imports during parsing - now absolute rather than relative file paths are used
- Fixes case where the
fix
tool would generate an invalid declaration
- Allows automatic coersion of
read_*
return values fromString
to other primitive types - Allows automatic coercion of optional-typed expressions to String within placeholders
- Fixes handling of relative imports that are not in a subdirectory of the main WDL's parent directory
- Adds
fix
tool to automatically fix some non-compliant WDL syntax - Improve error messages in expression evaluator
- Fixes handling of relative imports for WDL specified using non-file URIs (e.g. http(s))
- Fixes quoting and escaping of import URIs by code formatter/generator
- Disables wrapping of expressions within placeholders
- Breaking changes:
loc
is moved from the first to second parameter section in all AST case classes to prevent it from being included in theequals
andhashCode
implementations- Some fields of AST case classes are renamed for greater clarity
- Allows concatenation of
String
and non-String
variables in draft2 and 1.x - Captures type of quotes used in strings (single or double) so they can be recapitulated by the code formatter/generator
- Allows any type of expression to be used as the value of the
default
placeholder option - Fixes code generator and formatter for nested placeholder edge-cases
- Fixes regession in code generator and formatter
- Escapes strings when generating/formatting code (unless they are in the command block)
- Always unwraps
V_Optional
values during expression evaluation - Fixes issues with using expressions in placeholder option values
- Fix resolution of imports using local paths not relative to the main document
- Adds support for Object -> Map coercion
- Fixed indentation issue in command block
- Fixes processing of escape sequences (including regular expressions used in second argument to
sub
) - Other bugfixes
- Updates to dxCommon 0.2.12
- Breaking change: replaces individual placeholder AST/TST elements with a single unified placeholder element
- Adds support for non-compliant (but commonly used) combinations of placeholder options (default together with true/false or sep)
- Handle 'Left' and 'Right' as keys for serialized
Pair
s - Emit warning rather than throw exception when there are duplicate keys in runtime/hints/meta sections
- Allow coercion of
read_lines
return value to array of any primitive type - Update to dxCommon 0.2.9
- Preserve blank lines in command section
- Add back placeholder support for v1.1
- Fix WDL v1.1 parsing
- Add
TypeInfer.applyExpression
function for type.checking expressions - Duplicate declaration names in different task/workflow sections are now caught during type-checking
- Refactor
wdlTools.exec.InputOutput
- Add convenience constructors for compound WdlValues
- Fix issue in
WdlGenerator
when first non-whitespace in command block is a placeholder
- Bugfixes
- Adds support for WDL 1.1
- Better handling of fully-qualified names in evaluation context
- Fix bug in evaluation of nested placeholders
- Revert change that disallowed String + non-String concatenation and Boolean-Boolean comparisons pre-2.0
- Fix some places where
SortedMap
wasn't being used when serializing - Use
SeqMap
for compound values (Struct
andObject
) - Use consistent terminology for compound types (Array and Map items; Struct and Object fields)
- Allow any compound type to be aliased
- Enable recursive deserialization of types
- Support use of type aliases for WDL type (de)serialization
- Use
SortedMap
s when serializing to JSON to the results are consistent
- Handle special case of null values for non-optional compound inputs in
wdlTools.exec.InputOutput
- The JSON serialization format was updated for compound types:
- "name" -> "type"
- For Array, "itemType" -> "items"
- For Map, "keyType" -> "keys" and "valueType" -> "values"
- For Pair, "leftType" -> "left" and "rightType" -> "right"
- Bump ANTLR version to 4.9
- Revert change to
Stdlib.size
- don't useisExactDobule
- Fix several small issues that have recently been clarified in the spec
- Bugfixes
- Move DockerUtils to dxCommon
- Fix unification of arrays
- Throw type error when map keys are non-primitive
- Fix bug with vectorization of subtraction and division operations
- Fix more code generator/formatter bugs, add tests
- Fix code generator/formatter for vectorized operators
- Move LocalizationDisambiguation to dxCommon
- Vectorize mathematical functions - successive
+
,-
,*
, and/
operations are transformed from nested pairwise function calls to a single function call on a Vector of arguments - Fixed parser issue in development where runtime keys (e.g.
cpu
,container
) could not be used as variable names
- Add base class for "generic" user-defined functions
- Add
SourceLocation
toUserDefinedFunctionImplFactory.getImpl
signature - Fix parsing of comments in *meta sections in WDL v2
- Add
EvalPaths
toFunctionContext
- Implement new syntax in development for pass-through of call arguments
- Fix bug with struct-typed objects in v1
- Add hooks for user-defined functions
- Relax type-checking of arrays - ignore nonEmpty, which is only a runtime check
- Fix code generator/formatter to only use object literal syntax in WDL 2+
- Add option
LocalizationDisambiguator
to always create new localization dir for each source dir
- Add support for URI-formatted image names (e.g. 'docker://myimg')
- Add functions for serialization and deserialization of WdlTypes
- Throw
NoSuchParserException
when a document is not detected to be parsable
- Fix sevaral issues with the handling of non-empty arrays
- Throw exception when there are key collisions in
as_map
function - Other bugfixes
- Change all map-types attributes of typed AST classes to be
SortedMap
s - mainly to preserve insert order for the code formatter - Updated to dxCommon 0.2.1, which fixes a bug with idential AST/TST objects not comparing as equal/generating identical hash codes
- Add support for struct literals in the code generator
- Add support for direct resolution of fully qualified names during evaluation of identifiers of pair, object, and call types
- Implemented two accepted spec changes in WDL development/2.0:
- openwdl #243: Use RE2 for regular expression matching in
sub()
function - openwdl/wdl#297: Struct literals
- openwdl #243: Use RE2 for regular expression matching in
- Moved common code (wdlTools.util.*) to separate package, dxCommon
- Fixed struct aliasing bug
- Bugfixes for code generator/formatter
- Bugfixes
- Bugfixes
- Bugfixes
- Added support for new WDL v2
min
andmax
functions - Complete WDL v2 support in code formatter and generator
- Internal refactorings (will causes breaking changes for users of the library)
- Correctly handle optional parameters in task calls
- Fix JDK11 deprecation error
- Many bugfixes
- Type-checking bug fixes
- Error message improvements
- Refactoring of
types.Unification
, including additionl UnificationContext, which allows for context-specific type checking - Renamed some members of typed AST:
Declaration
->PrivateVariable
*InputDefinition
->*InputParameter
OutputDefinition
->OutputParameter
Task.declarations
->Task.privateVariables
- Renamed
types.Context
->types.TypeContext
- Add default values for all reserved runtime keys (as per the PR)
- Override
LocalFileSource.equals
to compare based onlocalPath
- Renamed Utils classes
eval.Utils
->eval.EvalUtils
syntax.Utils
->syntax.SyntaxUtils
types.Utils
->types.TypeUtils
- Support floating-point values for cpu, memory, and disk size runtime requirements
- Add
BlockElement
as the parent type ofConditional
andScatter
in typed AST - Logger enhancements
- Fixed autodoc templates
- Allow T -> T? coercion under
Moderate
type-checking strictness - Handle nested placeholders during string interpolation - these were previously disallowed
- Add expression graph builder for workflows
- Added
wdlTools.types.Graph
for building DAGs from the TST. - Breaking change: the operator case classes have been removed from AST and TST. Operators are now represented by
ExprApply
with special names. The names can be looked up inwdlTools.syntax.Operator
. - Many other internal breaking changes - mostly reorganization/renaming.
- Add stand-alone task executor, and
exec
command
- Add new WDL v2
sep
function - Move
FileAccessProtocol
toutil
package - Unify all file handling in
FileAccessProtcol
- merge functionality fromSourceCode
and from dxWDLFurl
classes - Migrate some Docker utilities from dxWDL to wdlTools
- Rename
TextSource
->SourceLocation
- Rename
text
AST fields toloc
- Add source document to
SourceLocation
- Fix
Util.replaceSuffix
- Other bugfixes
- Cleaned up utility functions
- Migrated some utility code from dxWDL
- First release