Skip to content

Latest commit

 

History

History
241 lines (156 loc) · 9.68 KB

CHANGELOG.md

File metadata and controls

241 lines (156 loc) · 9.68 KB

Changelog

version 1.2.0

  • Introduced the concept of "scoped types" to support the use of object-like values within the hints section while still keeping the Object type as deprecated.

  • Added new task requirements and hints sections (#540 and #541), and deprecated the runtime section

  • Added new workflow hints section (#543), and moved allowNestedInputs from workflow meta to hints

  • Deprecated the previously allowed behavior implied by setting allowNestedInputs: true where required task/subworkflow inputs could be left unsatisfied. Now all inputs either need to have a default value or have their value specified in the call inputs. Only optional task/subworkflow inputs that are not explicitly set in the call inputs may have their value set at runtime if the allow_nested_inputs hint is true.

  • Added the ability to access the actual values of requirements, meta, and parameter_meta at runtime.

  • Added fpga requirement and reserved hint for requesting FPGA resources.

  • Added disks and gpu reserved hints for requesting specific resources.

  • Added contains_key function to standard library. PR 603

  • Added exponentiation operator (**).

  • Added find, and matches functions.

  • Added chunk function for chunking an array into sub-arrays.

  • Add parameter_meta section to struct definition.

  • Relaxed the requirements on coercing object/map to struct - extra keys are allowed and ignored. Note that this may constitute a breaking change if you rely on a task to fail when coercing an object/map with extra keys.

  • Added join_paths function to join two or more paths.

  • Added allowance for conversion between Struct types when certain criteria are met.

  • Generalized size function to take any compound value.

  • Added optional default parameter to select_first.

  • Generalized length function to also accept Map, Object, and String arguments.

  • Added multi-line strings. PR 602

  • Added the Array[String] keys(Struct|Object) function variant for getting the member names for a struct or object.

  • Added values function for getting the values from a Map.

  • Added parameters to read_tsv that enable it to read field names from a header row or an Array[String] and return an Array[Object]. PR 627

  • Added contains function for determining whether an array contains a specified value.

  • Clarify how inputs with defaults are implicitly optional PR 464 by @mlin

  • Make input: optional in call bodies. PR 524 by @mlin.

  • Added Directory type. PR 641

  • Added clarification that input files and directories should be treated as read-only. PR 642

  • Added JSON extended file/directory input/output format. [PR 643] (#643)

  • Clarified that local paths are always used when evaluating input/private/command expressions.

  • Clarified the meaning of a remote parent folder for the purposes of localization.

  • Clarified that accessing a non-existent member of an object, struct, or call is an error.

version 1.1.2

  • State that Union is also the type of some runtime attributes.

  • Remove some syntax sections that were missed in 1.1.1.

  • Clarify short-circuiting of boolean expressions (#199)

  • Added requirement for tests to the RFC

  • Clarifies number of sections allowed within task and workflow blocks. PR 598 by @claymcleod

  • Clarified that read_bool is case-insensitive, and added an example.

version 1.1.1

  • Applied Errata to the 1.1.0 spec.

  • Updated most examples to adhere to the new specification for WDL tests.

  • Added missing File and version keywords to the list of reserved words.

  • Added new sections or materially expanded existing sections:

    • "Limited exceptions" to type coercion rules
    • "Static Analysis and Dynamic Evaluation"
    • "Task Input Localization"
    • "Expression Placeholders" under "Command Section"
    • Hidden types
  • Reformatted all tables.

  • Reorganzied the standard library.

  • Provided codespell configuration and workflow to catch typos. PR 530 by @yarikoptic.

  • Fixed typos, thanks to @yarikoptic, @sejyoti, @mmterpstra, @j23414, @jdavcs, @beukueb, @notestaff, @alberto-mg, @mperf!

version 1.1.0

  • Added Errata.

  • Clarified that the sub function requires a POSIX Extended Regular Expression (ERE). PR 243 by @rhpvorderman

  • Added syntax for struct literals. PR 297 by @patmagee

  • Added engine functions for min and max. PR 304 by @pshapiro

  • Added section on file outputs including optional outputs. PR 310 by @jtratner

  • Added reserved keys, explicit formats, and default values for runtime attributes and hints. PR 315 by @patmagee

  • Namespacing has been clarified. PR 340 by @DavyCats

  • Abbreviated syntax for call inputs bound to workflow-scoped values by name: {input: x, y=b, z} is shorthand for {input: x=x, y=b, z=z} PR 365 by @mlin

  • Write a specification for unsatisfied task inputs and nested optional inputs. PR 359 by @rhpvorderman

  • Adds an engine function for joining arrays of strings. PR 229 and PR 368 by @EvanTheB and @illusional.

  • Added an engine function for adding a suffix to an array of primitives as well as well as quote and squote engine functions. PR 362 @patmagee

  • Added a required input and output format for workflow engines. PR 357

  • The input specification has been clarified. PR 314 by @geoffjentry.

  • Added a list of keywords that can not be used as identifiers. PR 307 by @mlin.

  • Empty call blocks have been clarified. PR 302 by @aednichols.

  • Optional and non-empty type constraints have been clarified. PR 290 by @mlin.

  • The way comments work has been clarified. PR 277 by @patmagee.

  • Implement string escapes in the Hermes grammar. PR 272 by @cjllanwarne.

  • Added None for explicitly stating that an optional variable is not defined. PR 263 by @rhpvorderman.

  • Backported to 1.0: Fix a bug in the grammar regarding unescaped strings. PR 253 and PR 255 by @aednichols.

  • WDL Files should be encoded in UTF-8 now. String definitions have been clarfied. PR 247 by @EvanTheB.

  • The version statement can now be the first non-comment statement. So it can be stated below a license header for example. PR 245 by @ffinfo.

  • Added a keys function to get an array of keys from a map. PR 244 by @ffinfo.

  • Several bugs in the grammar have been fixed. PR 238 and PR 240 by @cjllanwarne.

  • Type conversions and meanings have been clarified. PR 235 by @EvanTheB.

  • Backported to 1.0: Imports are now relative to their current location. PR 220 by @geoffjentry.

  • Added conversion functions as_pairs and as_map to convert between Array[Pair[X,Y]] and Map[X,Y]. PR 219 by @DavyCats.

  • Add an after keyword to run a task after other tasks. PR 162 by @cjllanwarne.

version 1.0.0

  • Rename lexer to WdlV1Lexer
  • Rename parser to WdlV1Parser
  • Rename WdlComments channel to COMMENTS
  • Remove SkipChannel
  • Rename COMMENT -> LINE_COMMENT, emit comments to COMMENTS channel
  • Add Meta mode for parsing meta sections
  • Parse whitespace between command and opening {/<<< within Command mode, so that it is emitted to the HIDDEN channel
  • Ignore trailing commas
  • Formatting -
    • use two spaces always for indentation
    • always wrap statements (i.e. always put opening ':' and closing ';' on newlines)
    • always use PascalCase for tokens within lexer modes

draft-2

  • Added ANTLR4 grammar