·
7 commits
to main
since this release
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 aroundif...then...else...expressions. - Documentation comments.
wdl-docnow 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, andjob_name_prefixconfiguration 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_diroption lets you share pulled.sifimages 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
UnusedDocCommentsandDocCommentTabswere added, and a newallowed_namesconfig lets you create an allowlist for theSnakeCaseandDeclarationNamerules.
What's Changed
sprocket
Added
- The Apptainer executable path is now configurable via the
executablefield inApptainerConfig, enabling support for Singularity and custom install paths (#682). - Added
--suffixargument torunsubcommand to append a user-defined string to run directory names (#695). - Added
image_cache_dirconfiguration option to the Apptainer backend for sharing pulled.sifimages across runs (#693). - Added configuration options to exclude specific hints, inputs, and/or requirements from call cache checks (#662).
- Intermediate
testresults are logged as they complete (#674).
Changed
- Hover and completion documentation now prefer doc comments over
meta/parameter_metadescriptions, with existing behavior preserved as a fallback (#649). - Logs are now silenced during
dev testevaluation (#650).
Fixed
- Fixed a bug that prevented
sprocket formatfrom 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 runCLI (#642).
wdl-ast
Added
- Support for identifying and parsing comments with special meaning (i.e., directives and doc comments) (#614).
Documentedtrait 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
commandtext (#678).
wdl-analysis
Changed
- Analysis now emits diagnostics for use of
Maptypes or map literals where the key type is optional (#645). - Implicit input bindings will now error in document versions < WDL v1.1 (#644).
- Changed
SyntaxNodeExttrait toExceptableand 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.*andtask.parameter_meta.*completions so nested object members are suggested correctly (#669).
Removed
- Removed
EXCEPT_COMMENT_PREFIX. Usewdl_ast::{DIRECTIVE_COMMENT_PREFIX, Directive}instead (#614). - Removed
except_comments()method fromSyntaxNodeExt/Exceptabletrait (#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
sbatchand tracks their status through a periodicsacctmonitor, matching the LSF backend's architecture. New configuration optionsinterval,max_concurrency, andjob_name_prefixwere also added. Proper cancellation support is now included (#654). - Removed support for constructing
Mapvalues 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_namesconfiguration key for allowing certain names in theSnakeCaseandDeclarationNamerules (#660).- New lint rule
UnusedDocCommentsto warn when doc comments are applied to unsupported syntax items (#590). - New lint rule
DocCommentTabsto ensure doc comments do not contain tab characters (#664).
Changed
- Renamed
LintDirectiveValidtoExceptDirectiveValid(#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()andutil::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