...
- ANTLR4 version bump to 4.13.1
- New value type
V_ForcedNullis used to avoid an addition of an explicitnullinput 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
versionis 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 theversionwhile working on workflow of a version greater thandraft-2with 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: ifversionis not detected anddraft-2is assumed, we check if theinputsection 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.Workflowhas asourceattribute in analogy toTAT.Documentto 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
execcommand 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.getto respect override values
- Updates to latest dxCommon
- Fixes infinite loop when calling
wdlTools.eval.Runtime.containswith "docker" or "container"
- Fixes parsing of placeholder options in draft-2 and 1.0 such that
defaultandsepare no longer treated as reserved words
- Breaking Change
Eval.applyMapis changed toEval.applyAlland takes aVectorrather thanMapargument. 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.RuntimeandEval.Metaclasses
- 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.returnCodesaccessor - 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
printTreecommand - Allow primitive ->
Stringcoercion for WDL versions <= 1.0 - Fixes parsing of unary operations
- A
parameter_metakey 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
fixtool would generate an invalid declaration
- Allows automatic coersion of
read_*return values fromStringto 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
fixtool 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:
locis moved from the first to second parameter section in all AST case classes to prevent it from being included in theequalsandhashCodeimplementations- Some fields of AST case classes are renamed for greater clarity
- Allows concatenation of
Stringand non-Stringvariables 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
defaultplaceholder 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_Optionalvalues 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
Pairs - Emit warning rather than throw exception when there are duplicate keys in runtime/hints/meta sections
- Allow coercion of
read_linesreturn 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.applyExpressionfunction 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
WdlGeneratorwhen 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
SortedMapwasn't being used when serializing - Use
SeqMapfor compound values (StructandObject) - 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
SortedMaps 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
SourceLocationtoUserDefinedFunctionImplFactory.getImplsignature - Fix parsing of comments in *meta sections in WDL v2
- Add
EvalPathstoFunctionContext
- 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
LocalizationDisambiguatorto 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
NoSuchParserExceptionwhen 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_mapfunction - Other bugfixes
- Change all map-types attributes of typed AST classes to be
SortedMaps - 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
minandmaxfunctions - 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->*InputParameterOutputDefinition->OutputParameterTask.declarations->Task.privateVariables
- Renamed
types.Context->types.TypeContext - Add default values for all reserved runtime keys (as per the PR)
- Override
LocalFileSource.equalsto compare based onlocalPath - Renamed Utils classes
eval.Utils->eval.EvalUtilssyntax.Utils->syntax.SyntaxUtilstypes.Utils->types.TypeUtils
- Support floating-point values for cpu, memory, and disk size runtime requirements
- Add
BlockElementas the parent type ofConditionalandScatterin typed AST - Logger enhancements
- Fixed autodoc templates
- Allow T -> T? coercion under
Moderatetype-checking strictness - Handle nested placeholders during string interpolation - these were previously disallowed
- Add expression graph builder for workflows
- Added
wdlTools.types.Graphfor building DAGs from the TST. - Breaking change: the operator case classes have been removed from AST and TST. Operators are now represented by
ExprApplywith 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
execcommand
- Add new WDL v2
sepfunction - Move
FileAccessProtocoltoutilpackage - Unify all file handling in
FileAccessProtcol- merge functionality fromSourceCodeand from dxWDLFurlclasses - Migrate some Docker utilities from dxWDL to wdlTools
- Rename
TextSource->SourceLocation - Rename
textAST fields toloc - Add source document to
SourceLocation - Fix
Util.replaceSuffix - Other bugfixes
- Cleaned up utility functions
- Migrated some utility code from dxWDL
- First release