Skip to content

Releases: stjude-rust-labs/wdl

wdl-v0.17.0

13 Aug 20:20
0e35168
Compare
Choose a tag to compare

What's Changed

wdl-grammar

Added

  • Added is_keyword and is_operator used for LSP semantic highlighting (#569).

wdl-ast

Added

  • Added support used by LSP hovers and completions (#519).

wdl-analysis

Added

  • Added semantic highlighting support for the WDL Language Server (#569).
  • Added support for ignorefiles, although by default it is not enabled (#565).
  • Added rename support for the WDL Language Server (#563).
  • Added hover support for the WDL Language Server (#540).

wdl-doc

Added

  • Added support for ignorefiles, although by default it is not enabled (#565).
  • Custom logo support for the top of the left sidebar (#559).

wdl-engine

Added

  • Added an experimental config flag to support golden testing that reduces environment-specific output (#553).

wdl-lsp

Added

  • Added support for semantic highlighting (#569).
  • Added support for renaming (#563).
  • Added support for hover (#540).

wdl-cli

Added

  • Added support for ignorefiles, although by default it is not enabled (#565).

Full Changelog: wdl-v0.16.0...wdl-v0.17.0

wdl-v0.16.0

31 Jul 16:43
4b8d437
Compare
Choose a tag to compare

What's Changed

wdl-grammar

Added

  • Added token sets used for LSP auto-completion (#519).

wdl-ast

Added

  • Added support used by LSP hovers and completions (#519).

wdl-analysis

Added

  • Added code completion support for the WDL Language Server (#519).
  • Added an ArrayType::unqualified method to cheaply drop the + qualifier (#529).

Changed

  • The UnusedCall rule no longer emits a diagnostic for tasks/workflows called if they have an empty or missing output section (#532).

wdl-lint

Fixed

  • Updated shellcheck logic that erroneously flagged placeholders that are quoted (#541).

Removed

  • Removed the OutputSection lint rule (#532).

wdl-engine

Added

  • Added cpu_limit_behavior and memory_limit_behavior options to task execution configuration (#543)
  • Serialize Pair as Object for execution-level inputs.json and outputs.json (#538).

Changed

  • wdl-engine::Inputs supplied via dotted path notation (i.e. user inputs from input files and command line arguments) can be implicitly converted to WDL strings if that is what the task or workflow input expects (#544).

Fixed

  • Fixed a failure to clean input file and directory paths (#537).
  • Fixed a panic that may occur in array and map literal evaluation (#529).

wdl-lsp

Added

  • Added support for completions (#519).
  • Added exceptions to ServerOptions (#542).

wdl-cli

Added

  • Inputs on the CL can have the name of the called task or workflow specified and then ommitted from individual input pairs (#535).

Full Changelog: wdl-v0.15.1...wdl-v0.16.0

wdl-v0.15.1

10 Jul 20:21
e4d9b32
Compare
Choose a tag to compare

What's Changed

Full Changelog: wdl-v0.15.0...wdl-v0.15.1

wdl-v0.15.0

09 Jul 16:39
0fa12b0
Compare
Choose a tag to compare

wdl-grammar

Removed

  • Removed the SyntaxExt trait (#482).

Deprecated

  • Deprecated SyntaxTokenExt::succeeding_trivia() (#498).

wdl-ast

Changed

  • Removed inherent impls of can_cast(), cast(), and inner() for Expr and PlaceholderOption that were redundant with methods on AstNode (#480).

wdl-analysis

Added

  • Added support for struct members, struct literals and call inputs in goto_definition (#491).
  • Added find references support for WDL Language Server (#484).
  • Added goto_definition support for WDL Language Server (#468).
  • Added a fallback_version configuration option (#475).

Changed

  • Analyzer now takes a general-purpose Config argument, which contains the previous DiagnosticsConfig argument (#475).
  • Non-error diagnostics during parsing no longer prevent wdl-analysis from analyzing documents (#475).

Fixed

  • Fixed incorrect assertion pointed out in #500 (#515).

wdl-format

Added

  • Added panic documentation to functions which may panic (#498).
  • Added documentation to places which needed more clarity (#498).

Changed

  • Renamed some methods of TokenStream<PreToken> for increased clarity (#498).

Removed

  • Removed the exactly_one! macro (#498).

wdl-doc

Added

  • wdl-doc crate is feature-complete-enough for a beta release 🎉 (#339).

wdl-lint

Changed

  • ShellCheck now has additional logic to suppress erroneous warnings for globbing and word splitting (#457).

wdl-engine

Added

  • TES input and outputs now include authentication query parameters (#466).

Fixed

  • Fixed guest paths for redirected stdio for both the Docker and TES backends (#470).

Changed

  • Backend configuration has changed to allow multiple backends to be defined (#469).

wdl-lsp

Added

  • Added goto_definition, find_all_references tests (#489).

Fixed

  • Ensure the server is fully initialized before responding (#487).

wdl-cli

Changed

  • Source now has a default implementation (#476).

wdl-v0.14.0

28 May 16:43
4ed0ed7
Compare
Choose a tag to compare

wdl-ast

Fixed

  • If a WDL >=v1.2 workflow has a non-boolean value for the "allow nested inputs" hint, the metadata will also be searched for allowNestedInputs: <bool> instead of prematurely dis-allowing nested inputs (#445).

wdl-format

Dependencies

  • Bumps dependencies.

wdl-lint

Added

  • Added RedundantNone rule (#444).

Dependencies

  • Bumps dependencies.

wdl-analysis

Dependencies

  • Bumps dependencies.

wdl-doc

Dependencies

  • Bumps dependencies.

wdl-engine

Added

  • Implemented a TES task execution backend (#454).
  • Adds the insecure option to the TES backend configuration (#459).

wdl-lsp

Dependencies

  • Bumps dependencies.

wdl-cli

Dependencies

  • Bumps dependencies.

wdl

Dependencies

  • Bumps dependencies.

wdl-v0.13.2

05 May 18:59
3043d04
Compare
Choose a tag to compare

wdl-analysis

Changed

  • wdl_analysis::document::Document was moved to wdl_analysis::Document (#440).

wdl-cli

Fixed

  • JSON and YAML files are now correctly parsed (#440).
  • Removes the unused shellcheck option in wdl::cli::Analysis (#441).

wdl-doc

Dependencies

  • Dependencies were updated.

wdl-engine

Fixed

  • JSON and YAML files are now correctly parsed (#440).
  • The From<IndexMap<String, Value>> method was moved to the private constructor wdl_engine::Object::new(), as there are some guarantees the caller has to uphold that weren't obvious in the From implementation (#440).

Dependencies

  • Dependencies were updated.

wdl-lint

Dependencies

  • Dependencies were updated.

wdl-lsp

Dependencies

  • Dependencies were updated.

wdl

Dependencies

  • Dependencies were updated.

Full Changelog: wdl-v0.13.1...wdl-v0.13.2

wdl-v0.13.1

02 May 15:59
3a7b61b
Compare
Choose a tag to compare

wdl-v0.13.0

02 May 00:23
3af4b81
Compare
Choose a tag to compare

What's Changed

wdl-ast

Changed

  • AST validation has been moved from this crate to wdl-analysis (#341).
    • This removed the validation and visitor modules from this crate.

wdl-analysis

Changed

  • AST validation now occurs as part of analysis instead of during parsing (#341).

Added

  • Added Visitor (moved trait definition from wdl-ast to wdl-analysis) (#341).
  • Added Validator (moved struct definition from wdl-ast to wdl-analysis) (#341).
  • Added SyntaxNodeExt (moved trait definition from wdl-ast to wdl-analysis) (#341).
  • Added Default impls to DiagnosticsConfig and Analyzer (#341).
  • Added static validation of regex expression in a string literal (#404).

Fixed

  • Placeholder options are now statically type checked (#345).
  • Prevent lsp crash due to panic in single file analysis (#431).

wdl-lint

Changed

  • util::is_properly_quoted is now util::is_quote_balanced (#341).
  • ShellCheck is now based on type analysis and is no longer in "beta" (#341).
  • ShellCheck has been made part of the default lint rule set (#341).
    • This removes the optional_rule() function.
  • Linting is now based off an analyzed document instead of just a parsed AST (#341).
    • This removes the LintVisitor struct.

Added

  • Added serialize_oxford_comma() to the util module (#341).
  • Added a Linter struct which lints analyzed documents (#341).
  • made find_nearest_rule() pub (#412).

Changed

  • Renamed lint rules to be more consistent (#408).

Fixed

  • Downgraded PreambleCommentPlacement severity from error to note (#418).

wdl-engine

Added

  • Added writing inputs.json and outputs.json for each task and workflow
    that was evaluated (#437).
  • Implemented remote file localization for task execution (#386).
  • Implemented concurrent file downloads for localization for task execution (#424).

Fixed

  • Fix overly verbose call stacks in task failure messages (#435)
  • Fix sub replacement of multiple instances (#426).
  • Fix path translation in more expressions (#422).
  • The sep placeholder option was not performing guest path translation (#417).
  • Placeholder options are now type checked at runtime (#345).
  • Whether or not a task manager state represents unlimited resources is now correctly calculated (#397).
  • Fixed environment variable values are not using guest paths for Docker backend (#398).
  • Ensure output files created by Docker tasks running as root have correct host user permissions (#379).
  • Fixes chown functionality by making the path absolute (#428).

Changed

  • Refactored crankshaft backend to the docker backend (#436).
  • Evaluation errors now contain a "backtrace" containing call locations (#432).
  • Changed origin path resolution in inputs to accommodate incremental command line parsing (#430).

wdl-cli

Added

  • Adds the initial version of the crate.

wdl

Changed

  • Changed the behaviour of cli to accept case insensitive --except args (#423).
  • Removed the wdl binary and the cli module in favor of sprocket and the wdl-cli package respectively (#430).

New Contributors

Full Changelog: wdl-v0.12.0...wdl-v0.13.0

wdl-v0.12.0

01 Apr 22:05
c684c74
Compare
Choose a tag to compare

What's Changed

wdl-grammar

Changed

  • Renamed NameRefNode to NameRefExprNode (#355).
  • Updated to Rust 2024 edition (#353).

wdl-ast

Changed

  • Refactored AST API to support different syntax tree element representations (#355).
  • Updated to Rust 2024 edition (#353).
  • Refactored whitespace counting out of strip_whitespace into count_whitespace method (#317).

Fixed

  • AST validation now checks for duplicate hints sections in 1.2 documents (#355).

wdl-analysis

Added

  • missing_call_input now generates a warning for missing inputs when nested inputs are allowed, without changing the existing error behavior ([#344]#344).
  • Added path method to Document (#327).

Changed

  • Refactored analysis API to support different syntax tree element
    representations (#355).
  • Updated to Rust 2024 edition (#353).
  • Document is now trivially cloned (#320).
  • The task evaluation graph now forms implicit edges between the command and
    other nodes in the graph; the command now always depends on an input even if
    the input is not transitively referenced by the command. This does not impact
    the diagnostic relating to unused inputs (#320).

Fixed

  • Fixed type of task.container to be String? (#327).
  • Fixed a missing version 1.2 constraint on the String overload of basename (#320).

wdl-lint

Added

  • Added suggestion for similar rule names when encountering unknown lint rules (#334).
  • Added DisallowedDeclarationName rule (#343).
  • Added DEFINITIONS.md file with centralized documentation for WDL concepts (#195).
  • Added Rule::related_rules() for linking related lint rules (#371).
  • Added TryFrom for Tags to convert strings to Tag enums (#374).

Changed

  • Added InputSectionNode and OutputSectionNode to SnakeCase exceptable_nodes() (#343).
  • Updated to use new wdl-ast API (#355).
  • Updated to Rust 2024 edition (#353).
  • Relaxed CommentWhitespace rule so that it doesn't fire when a comment has extra spaces before it (#314).
  • fix messages suggest the correct order of imports to the user in ImportSort rule (#332).
  • Updated SectionOrdering to support ordering of struct definitions (#367
  • Replaced TryFrom with FromStr for Tags (#376).

Fixed

  • Fixed the MatchingParameterMeta rule to also check if the order of inputs matches parameter metadata (#354)
  • Fixed misplacement of highlighted spans for some ShellCheck lints (#317).

wdl-format

Changed

  • Updated to use new wdl-ast API (#355).
  • Updated to Rust 2024 edition (#353).

wdl-lsp

Changed

  • Updated to Rust 2024 edition (#353).

Fixed

  • Fixed an issue where the LSP was expecting a directory URI instead of file URI (#362).

wdl-engine

Added

  • Added support for cloud storage URIs (#367).
  • Added support reading of remote files from the stdlib file functions (#364)
  • Added support for YAML input files (.yml and .yaml) alongside JSON (#352).
  • Added support for graceful cancellation of evaluation (#327).
  • Added support for max_cpu and max_memory hints in task evaluation (#327).
  • Added a Crankshaft backend with initial support for Docker (#327).
  • Added calculation for mounting input files for future backends that use
    containers (#323).
  • Added retry logic for task execution (#320).
  • Added a Config type for specifying evaluation configuration (#320).
  • Added progress callback to WorkflowEvaluator (#310).

Fixed

  • Fixed support for URLs in file stdlib functions (#369).
  • Fixed panic when an input path in a complex type did not exist (#327).
  • Fixed path translation in nested placeholder evaluation (#327).
  • Fixed path translation to mount inputs individually (#327).
  • Fixed not including task temp directories in mounts (#327).
  • Fixed an incorrect type being used for scatter statement outputs (#316).
  • Fixed handling of input dependencies in workflow graph evaluation (#360).

Changed

  • Make stdlib file functions asynchronous (#359).
  • Refactored expression evaluation to make it async (#357).
  • Updated for refactored wdl-ast API so that evaluation can now operate
    directly on AST nodes in async context (#355).
  • Updated to Rust 2024 edition (#353).
  • Docker backend is now the default backend (#327).
  • Refactored a common task management implementation to use in task execution
    backends (#327).
  • Workflow evaluation now uses tokio::spawn internally for running graph
    evaluation concurrently (#320).
  • Improved evaluation reporting to include how many tasks are ready for
    execution (#320).
  • Updates the crankshaft and http-cache-stream-reqwest dependencies to official, upstreamed crates (#383).

wdl-doc

Added

  • Basic CSS styling using TailwindCSS (#262).

Changed

  • Updated to use new wdl-ast API (#355).
  • Updated to Rust 2024 edition (#353).
  • wdl-doc crate is now implemented using a DocsTree struct which simplifies
    the API of doc generation (#262).

wdl

Added

  • Added ability to compile and watch a CSS style directory for wdl doc (#262).
  • Added ability to skip CSS compilation using a precompiled stylesheet for wdl doc (#262).
  • Added graceful cancellation on SIGINT (#327).
  • Added --config option to the run command (#327).
  • Added executing task information to the wdl run progress bar (#310).

Fixed

  • Progress bars no longer interleave their output with the rest of tracing
    output (#320).
  • Fixed wdl run not correctly updating file/directory paths in an inputs file (#302).

Changed

  • Updated to Rust 2024 edition (#353).
  • wdl run now prefers running the workflow in a document containing a single
    workflow and a single task (#310).
  • Changed the default log level of the wdl binary from error to warn (#310).
  • Updates the crankshaft and http-cache-stream-reqwest dependencies to official, upstreamed crates (#383).

New Contributors

Read more

wdl-v0.11.0

17 Jan 21:46
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: wdl-v0.10.0...wdl-v0.11.0