Skip to content

v0.22.0

Latest

Choose a tag to compare

@sprocket-release-plz sprocket-release-plz released this 12 Mar 16:49
· 7 commits to main since this release
d022d74

A release bringing formatter configurability, a Slurm backend overhaul, documentation improvements, and LSP stability.

  • Formatter configuration. New options for trailing commas, import sorting, and input section formatting—all configurable via sprocket.toml. Improved formatting around if...then...else... expressions.
  • Documentation comments. wdl-doc now supports doc comments on workflows and tasks, and the generated site includes content-aware search via Pagefind. These changes come as we prepare for openwdl/wdl#757.
  • Slurm backend overhaul. Job submission is now asynchronous with a background status monitor, bringing the Slurm backend to parity with LSF and adding proper cancellation support along with new interval, max_concurrency, and job_name_prefix configuration options.
  • Engine fixes. Fixed a symlink remapping regression, erroneous container extension trimming, and the Apptainer image cache now skips pulling when images already exist locally.
  • Apptainer improvements. The executable path is now configurable (supporting Singularity), a new image_cache_dir option lets you share pulled .sif images across runs, and you can now configure which hints, inputs, and requirements to exclude from cache checks.
  • LSP stability. Several stability improvements, recursive task.meta.* completions, and workflow descriptions no longer incorrectly render as headers.
  • Lint rule cleanup. Formatting-only lint rules have been removed in favor of the formatter. New rules UnusedDocComments and DocCommentTabs were added, and a new allowed_names config lets you create an allowlist for the SnakeCase and DeclarationName rules.

What's Changed

sprocket

Added

  • The Apptainer executable path is now configurable via the executable field in ApptainerConfig, enabling support for Singularity and custom install paths (#682).
  • Added --suffix argument to run subcommand to append a user-defined string to run directory names (#695).
  • Added image_cache_dir configuration option to the Apptainer backend for sharing pulled .sif images across runs (#693).
  • Added configuration options to exclude specific hints, inputs, and/or requirements from call cache checks (#662).
  • Intermediate test results are logged as they complete (#674).

Changed

  • Hover and completion documentation now prefer doc comments over meta/parameter_meta descriptions, with existing behavior preserved as a fallback (#649).
  • Logs are now silenced during dev test evaluation (#650).

Fixed

  • Fixed a bug that prevented sprocket format from working --with-tabs (#678).
  • More informative errors for invalid WDL while running test (#705).
  • Fixed a regression where nested inputs and task requirements/hints were not being respected on the sprocket run CLI (#642).

wdl-ast

Added

  • Support for identifying and parsing comments with special meaning (i.e., directives and doc comments) (#614).
  • Documented trait for extracting doc comments from supported node types (#659).

wdl-format

Added

  • Added logic for tandem line breaks on matching tokens (e.g., open and close brackets) (#641, #678).
  • Added configuration for input section formatting (off by default) (#640).
  • Added configuration for trailing commas (on by default) (#665).
  • Added configuration for import sorting (on by default) (#679).
  • #@ except: comment normalization and consolidation of doc comment blocks (#614).

Changed

  • if...then...else... statements now always occupy multiple lines (#678).

Fixed

  • Correctly calculate bash indent when multiple placeholders are on the same line of command text (#678).

wdl-analysis

Changed

  • Analysis now emits diagnostics for use of Map types or map literals where the key type is optional (#645).
  • Implicit input bindings will now error in document versions < WDL v1.1 (#644).
  • Changed SyntaxNodeExt trait to Exceptable and gave the methods default implementations (#614).
  • Struct literals will now error in document versions < WDL v1.1 (#643).
  • Analyzer::document_symbol() will now parse documents on-demand and no longer requires analysis be performed beforehand (#702).

Fixed

  • Fixed a bug in the semantic token handler, where offsets were not properly calculated for multiline tokens (#702).
  • Fixed recursive task.meta.* and task.parameter_meta.* completions so nested object members are suggested correctly (#669).

Removed

  • Removed EXCEPT_COMMENT_PREFIX. Use wdl_ast::{DIRECTIVE_COMMENT_PREFIX, Directive} instead (#614).
  • Removed except_comments() method from SyntaxNodeExt/Exceptable trait (#614).

wdl-doc

Added

  • Added doc comment support for workflows and tasks (#656).
  • Added content-aware search backed by Pagefind (#616).

Changed

  • Struct and enum members are now displayed as tables, matching the workflow/task layout (#631).

Fixed

  • Line breaks in doc comments (including preambles) are now preserved (#653).
  • Doc comment indentation is now properly normalized (#655).

wdl-engine

Changed

  • The Slurm (with Apptainer) backend now submits jobs asynchronously via sbatch and tracks their status through a periodic sacct monitor, matching the LSF backend's architecture. New configuration options interval, max_concurrency, and job_name_prefix were also added. Proper cancellation support is now included (#654).
  • Removed support for constructing Map values with optional key types (#645).

Fixed

  • Fixed erroneous trimming of container extensions (#690).
  • Fixed a regression caused by PR 621 where remapping symlinks in a work directory would invalidate the task's call cache entry (#685).
  • Apptainer image cache now skips pulling when an image already exists locally (#720).
  • Removed duplicate DEBUG log message from the LSF backend (#629).

wdl-lint

Added

  • allowed_names configuration key for allowing certain names in the SnakeCase and DeclarationName rules (#660).
  • New lint rule UnusedDocComments to warn when doc comments are applied to unsupported syntax items (#590).
  • New lint rule DocCommentTabs to ensure doc comments do not contain tab characters (#664).

Changed

  • Renamed LintDirectiveValid to ExceptDirectiveValid (#614).

Removed

  • Removed formatting-only lint rules (CallInputSpacing, CommentWhitespace, ElementSpacing, ExpressionSpacing, EndingNewline, ImportSorted, ImportWhitespace, LineWidth, LintDirectiveFormatted, MetaKeyValueFormatting, PreambleCommentPlacement, PreambleFormatted, TrailingComma, VersionStatementFormatted, Whitespace) (#614, #665).
  • Removed util::is_inline_comment() and util::strip_newline() (#614).

wdl-lsp

Fixed

  • Several stability improvements (#702).
  • Workflow descriptions no longer incorrectly render as headers in hover documentation (#647).

Full Changelog: v0.21.1...v0.22.0