All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
sprocket runandsprocket dev testnow warn on a second Ctrl-C that terminating Sprocket leaves Docker containers running (#1020).
- Input validation now identifies JSON and YAML input files that need an
@prefix instead of reporting a misleading array type mismatch (#906).
- Updated
cloud-copydependency to 0.10.1 to pick up an important fix for downloading files from Azure Blob Storage (#1155).
-
Runs whose owning process stops reporting are marked
orphanedafterserver.orphan_timeout_minutes(default5), rather than remainingrunningindefinitely (#1109). -
Added the experimental
sprocket dev modulecommand group for creating and managing WDL modules (#999):initbootstraps module manifests and scaffolding.addadds dependencies tomodule.json, acceptsowner/repoGit shorthand, infers dependency names, and supports--nameand--git-platform; it tracks the remote's default branch when no matching version tags are discoverable.removeremoves dependencies frommodule.jsonand refreshesmodule-lock.json.lockrefreshes the lockfile and provides--lockedand--dry-runflows for CI.updaterefreshes locked versions within existing manifest constraints, with optional targeted updates.upgraderaises Git version constraints and relocks to the newest matching versions.treeandlistdisplay locked dependencies as a tree or flat table.verifyvalidates the current module's manifest and referenced files, then validates locked dependencies and cryptographic signatures when their artifacts are present;--require-signaturesrequires signatures for the current module and every locked dependency.fetchpre-populates the module cache frommodule-lock.json.cache cleanremoves the current module's locked cache tree, or every cached module with--all.signcreates a verifiablemodule.sigfor module contents.trustmanages trusted signing keys throughlist,add,all,remove, anddestroy;addcan trust a global OpenSSH public key for every module signed by that key.
-
Added the
[modules] default_git_platformsetting for selecting the hosted Git platform used byowner/reposhorthand (#999). -
Added the
[modules] max_transfer_bytessetting, which aborts a Git fetch once it exceeds the configured size; it defaults to 2 GiB and acceptsunlimited(#1115). -
Resolver errors now explain when a dependency path is missing
module.json, meaning that the target is not a Sprocket module or thepathis wrong (#999). -
Analysis now warns when a discovered
module-lock.jsonis out of date with itsmodule.json, pointing tosprocket dev module lock(#999). -
dev servernow reports finer-grained progress. A run isanalyzingwhile its document is resolved and type checked, and a task reportsinitializing,localizingwhile its inputs are transferred, orcachedwhen the call cache serves the task result (#1093). -
sprocket --no-ignoredisables.sprocketignoreprocessing while WDL documents are discovered (#1110). -
sprocket dev testnow produces spanned diagnostics for YAML files (#982). -
sprocket check --tagto append a lint tag to the default set. -
runanddev testnow show status bars for container image pulls (#1117).
- The
analyzer.exceptconfig field has been merged intocheck.except, shared by bothsprocket checkandsprocket analyzer(#1139). module.jsonno longer declares a moduleversion; Git version tags are the source of truth for module versions (#999).module.jsontoolsentries now useurlandids(an array of CURIEs such asdoi:10.21105/joss.04704) in place ofhomepage,doi, andbiotools(#999).module-lock.jsonno longer records dependency versions; it records the requested selector and resolved Git commit, renames the Git source fieldcommittosha, and records achecksumonly for Git sources. Local path sources carry no checksum or signer and are read as-is without verification (#999).- The
commitdependency selector now accepts any unique commit-SHA prefix (4 to 40 hex characters), expanded to the full SHA at lock time (#999). - Cycle detection now identifies modules by source coordinates (repository URL and sub-path, or local directory), so a module that transitively depends on itself is detected even at a different version or selector (#999).
- Symbolic sub-path components now match files and directories with
hyphen-to-underscore normalization (
my_taskresolvesmy_task.wdlormy-task.wdl), reporting an error when more than one entry matches (#999). - The manifest
excludefield now uses gitignore-style glob semantics:*stays within a path segment,**crosses separators, and a plain directory name excludes everything beneath it (#999). - A module is now invalid if it contains a symbolic link anywhere in its tree,
or a quoted
importthat resolves outside the module root (#999). - Adding, changing, or removing a dependency signer now requires confirmation
by default;
[modules] trust_mode = "tofu"accepts a first-seen signer for a new dependency but prompts for later signer changes, while"auto-accept"accepts and reports every signer transition without prompting (#999). sprocket runandsprocket submitnow regenerate a missing or out-of-datemodule-lock.jsonbefore executing, rather than only warning (#999).sprocket dev server inspectnow shows the run'sDirectory:andOutputs:paths as absolute, copy-pasteable paths (joining the server's output-directory root with the run-relative path) when the server's/infoendpoint is available, instead of requiring the user to manually combine a separateOutput Dir:line with a relative path (#1067).- The
--index-onflag (and theindex_onfield of the run submission API) is now documented as, and validated as, a path within the output directory'sindexdirectory rather than the name of an output (#704). sprocket check --exceptnow accepts lint tag names (e.g.,--except documentation).
-
sep=placeholders now evaluate typed empty primitive arrays as empty strings instead of reporting a type-coercion error (#1147). -
sprocket runnow creates the defaultsprocket.dbin its effective output directory, whether selected with-oorrun.output_dir, instead of the server's configured output directory (#1151). -
dev server cancelno longer reports success for a run this server instance is not tracking. Cancelling a run left behind by a previous server process silently did nothing while the run stayedrunning; it now returns409 Conflictexplaining that the run was orphaned (#1109). -
Work a backend runs on its own behalf, such as the Docker backend's container that restores ownership of a work directory, is no longer reported among a run's tasks (#1093).
-
Canceling a
dev serverrun mid-transfer now records the run ascanceledrather thanfailed, and no longer overwrites an outcome the run reached first (#1093). -
--index-onno longer panics when a run's output files live outside of the output directory; such outputs (e.g. aFileinput that a task passes straight through to an output) are reported and left out of the index, and the rest of the run's outputs are indexed as before (#704). -
--index-onnow indexes output files when the output directory is given as a relative path (e.g.-o out); previously the run panicked after producing an absolute, non-portable index symlink (#704). -
--index-on(and theindex_onfield of the run submission API) now rejects empty, absolute, and..-containing index paths up front, instead of writing index entries outside of theindexdirectory (#704). -
Rebuilding the index now skips recorded entries that do not resolve within the output directory, so entries written by an earlier version from an escaping index path are no longer recreated outside of it (#704).
-
The server's reported
output_dir(used bydev server inspect) is now resolved to an absolute path, even when configured with a relative path (e.g../out), so it can be reliably combined with a run's relative directory (#1067). -
sprocket runnow stores each run's directory relative to the output directory (matching the format already used by dev-server-initiated runs), fixing a bug wheredev server inspectwould display the output-directory prefix twice for runs started viasprocket run(#1067). -
dev servertask endpoints now return404 Not Foundfor missing task lookups, including missing task logs, instead of returning empty log results or generic internal errors (#956). -
Git dependencies fetched over SSH now authenticate through
ssh-agent; the credential callback no longer returns a credential type thatlibgit2did not request (#1115). -
A failing Git credential helper is now reported as an authentication failure, which names the credential settings to check, instead of a generic Git error (#1115).
-
A cached Git dependency whose sparse-checkout metadata cannot be parsed is now evicted and re-cloned instead of reused (#1115).
sprocket check --all-lint-rules, usesprocket check --tag allinstead.sprocket check --filter-lint-tag, tag names can now be used in the--exceptoption instead.sprocket check --only-lint-tag
sprocket dev docnow renders module-aware navigation, richer declaration pages, linked local types, improved code blocks, and a responsive layout with article-aligned GitHub, website, and optional Slack links (#1049).sprocket dev docnow accepts SEO metadata under[doc.seo](title, description, author, keywords, base URL, social image, locale, Twitter handle, robots, and theme color); each page's<title>becomes"<page> | <title>"and the configured values populate the<head>with standard, Open Graph, and Twitter Card tags (#1049).sprocket dev docnow discovers WDL modules by recursively scanning the workspace formodule.jsonmanifests, so nested and sibling modules (e.g. a monorepo of modules under a manifest-less root) are each documented as modules. Amodule.jsonthat fails to parse is skipped with a warning rather than aborting the run (#1049).
- For
sprocket dev server status, the--limitparameter is now respected: passing--limit Ndisplays at most N runs by fetching a single page. When--limitis omitted, all runs are displayed by paginating through the server's results. The footer distinguishes between "total run(s) in the system" (no filter) and "total matching run(s)" (with a--statusfilter) so a filtered count is not misreported as global. The--jsonoutput now includes atotalfield alongsideruns(#1050). - For
sprocket run, the execution backend is now considered for the call cache key derivation, which prevents unexpected behavior when switching executing backends. NOTE: this will cause existing call cache entries to be ignored (#1039). sprocket dev testnow isolates each invocation in a unique run directory, preventing Docker Desktop bind-mount failures when repeated tests recreate the same paths (#1041).sprocket dev docnow honors WDL feature flags configured insprocket.toml(#1043).- WDL 1.0
runtimeresource requirements such ascpuare again passed to execution backends instead of being treated as hints (#1027). sprocket checkwill no longer triggerKnownRulesfor rules excepted over the command line or insprocket.toml(#1060).
- Added server-management commands under
sprocket dev server(#915).statusshows a compact one-line status for a specific run, or lists all runs with pagination and status filtering; supports--json.inspectshows detailed information about a run, including per-status task counts, the server's output directory, and (with--detailed) a per-task breakdown.cancelcancels a queued or running run.retryresubmits a previous run with optional input overrides using the same syntax assubmit(key=value,@file, repeated keys append to arrays).
- New API endpoints on the
dev serverHTTP API:GET /api/v1/info(server metadata),GET /api/v1/runs/{id}/tasks(list a run's tasks, paginated and filterable by status),GET /api/v1/runs/{id}/tasks/counts(per-status task counts),GET /api/v1/tasks(list all tasks),GET /api/v1/tasks/{name}(single task), andGET /api/v1/tasks/{name}/logs(task logs, filterable bystdout/stderr) (#915). - Added a
strongishcontent digest mode (run.task.digests = "strongish") that hashes file size, last modified time, and the first 10 MiB of a file's contents; this is an intermediate strategy betweenweakandstrong, similar to Cromwell'sfingerprintcall caching strategy (#978). - Added
-t(--target),-f(--filter), and--exactoptions tosprocket dev test(#952). - Added
sprocket dev test schemasubcommand to generate a JSON schema for Sprocket test definitions (#953). - Added
sprocket config schemasubcommand to generate a JSON schema forsprocket.tomlfiles (#958).
- Grouped the server commands under
sprocket dev server(previously flat undersprocket dev):serverandsubmitare nowsprocket dev server <subcommand>. Theserversubcommand was renamedstart. (#915). sprocket analyzernow honors[format]configuration (#986).- Replaced the
peak_allocglobal allocator withmimallocand now query peak memory usage from the operating system on exit, removing per-allocation tracking overhead (#990). - Errors reported for a scalar input (e.g.,
File) that received multiple values now include a hint pointing to the likely cause—a repeatedkey=valueon the command line or an unquoted shell glob (e.g.,key=*.txt) that expanded to more than one value (#998). - The
-t(--include-tag) and-f(--filter-tag) options forsprocket dev testhave been renamed to-iand-e(--exclude-tag), respectively (#952).
dev serverHTTP endpoints and CLI commands now reject non-positive--limitvalues and negative or unparsablenext_tokenvalues (previouslylimit=0could loop pagination andlimit=-1triggered SQLite's unbounded-fetch behavior) (#915).- The "missing version statement" parse error no longer claims all WDL documents require a version statement (untrue for draft-2); it now scopes the claim to WDL v1.0+ and adds migration guidance for draft-2 documents (#993).
sprocketresolves symbolic module imports during analysis when amodule.jsonis found at or above the source directory, constructing aGitResolverfrom the[modules]configuration (#872).- Nix flake providing
packages.sprocket, a development shell with the full toolchain,nix flake checkentries (package build, binary smoke test, andnixfmt/statix/deadnixlints), and anix fmtformatter (#887). - Added printing diagnostics with TOML source context when TOML fails to parse or be deserialized (#918).
- New
test.throttleconfiguration entry for adding a delay between initial test submissions (#798). - Added
--show-task-stderroption to therunsubcommand to show task stderr during execution (#743). sprocket dev doc --checkto analyze documents without producing an output (#691).- Added
--fixtures-dirand--run-diroptions to thesprocket dev testcommand (#747). - Added support for the
should_failassertion on tasks insprocket dev test(#942).
- Moved from
tomltotoml-spannerfor TOML serialization (#918). sprocket dev serverwill now copy paths specified with--allowed-file-pathsto the list of--allowed-urlswith afile://prefix (#914)
sprocket dev serverwill canonicalize paths passed as CLI arguments (#913)- Fixed
#@ except: ContainerUrinot being honored when placed on individualcontainer:/docker:entries withinrequirementsandruntimesections (#879).
sprocket runwill no longer createoutdirectories for runs with invalid CLI inputs (#863).
- Fixed a bug in
sprocket dev testwhere a failing test would cause other tests to fail (#891).
- Bumped
cloud-copyto0.8.0, which adds support for downloading files using multiple parallel streams (#909).
- Adds
wdl-modulesresolver layer behind theresolverfeature gate, covering theResolvertrait,GitResolver, sparse-checkout caching, version selection, lockfile generation, TOFU trust, and module materialization. Wires[modules]config section intosprocket.toml(#838). sprocket format --newline-styleandformat.newline_styleconfig option to control the style of newlines insprocket formatoutput (#795).- Initial WDL 1.4 support in
wdl-grammarandwdl-ast, including the reservedfromkeyword and the three import forms fromopenwdl/wdl#765. WDL 1.4 is gated behind thefeature_flags.wdl_1_4analysis flag (defaultfalse). See the per-crate changelogs for details (#831). sprocket explainnow includes WDL snippets for lint rules (#807).
-
The
examplesfield ofsprocket explain --format jsonhas changed from Markdown code blocks to the following structure (#807):type LabeledSnippet = { label?: String, snippet: String }; type Example = { negative: LabeledSnippet, revised?: LabeledSnippet }
dev testwill now cancel execution onCTRL+C(#839).
- Repeated keys collect into arrays (e.g.,
task.files=a.txt task.files=b.txt), trailing bare arguments append to the preceding key (e.g.,task.files=a.txt b.txt c.txt), and scalar values are auto-wrapped into single-element arrays when the WDL type expectsArray[T](#820).
- Input files (JSON/YAML) must now be prefixed with
@(e.g.,@inputs.json) to disambiguate them from bare array values (#820).
- When a task's
containerrequirement is an array, Sprocket now tries each entry in order until one succeeds instead of silently using only the first entry (#698).
- New
--hide-warningsflag tocheck/lintwith a correspondingcheck.hide_warningsoption insprocket.toml(#675). - Added support for configuring the
docsubcommand viasprocket.toml(#773)
- Changed how defaults for many
sprocket.tomlentries are serialized and deserialized; non-default config value serialization is unchanged (#675). formattable insprocket.tomlhas been refactored and expanded with new options (#675).- Removed the
--prioritize-workflows-viewflag todocsubcommand (#675). --homepageargument and config field fordochas been renamed to--index-pageto disambiguate it fromhomepage_url(#675).- Changed the
--javascript-*arguments fordocto more adaptable--html-*options (#675). - The outputs path message is now printed to stderr instead of stdout so that stdout contains only the JSON outputs (#732).
- Renamed
--name(-n) to--target(-t) on theinputssubcommand for consistency withrunandvalidate(#735). - Renamed
--output-directory(-o) to--output-dir(-o) on thedev serversubcommand andserver.output_directorytoserver.output_dirinsprocket.toml(#777). - The following config paths are now shell-expanded:
run.output_dir,run.task.cache_dir,run.http.cache_dir,server.output_dir,server.engine.http.cache_dir,server.engine.task.cache_dir(#728).
PrimitiveValue::Displaynow escapes special characters inString,File, andDirectoryvalues (#768).- Lazy cancellation (first ctrl+c in Slow mode) now preserves evaluation
results for in-flight tasks instead of discarding them as
Canceled(#744). - Fixed a bug where
--targetdid not prefix input file keys, causingexpected the key to be prefixederrors when rerunning a task with unprefixed inputs (#745). sprocket runno longer requires--targetwhen the document contains a single workflow or a single task and no inputs are provided (#745).- Added a filesystem lock to serialize setup operations across concurrent
sprocket runprocesses sharing the same output directory (#734). - Switched SQLite from WAL to DELETE journal mode to eliminate
SQLITE_PROTOCOLerrors under concurrent access (#734). - Increased SQLite
busy_timeoutfrom 5s to 30s and added retry with exponential backoff when opening the database (#734). - Fixed a bug where the
format,run,lockandinputscommands would not utilize the configuredfallback_version(#784).
- 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). - Intermediate
testresults are logged as they complete (#674). - New lint rule
DocCommentTabsto ensure doc comments do not contain tab characters (#664).
- 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 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).
- Bumps dependencies.
- Added "output assertions" to
sprocket dev testfor asserting on WDL values (#565). - Added
common.wdl.fallback_versionsetting tosprocket.tomlfor interpreting WDL documents with unrecognized version strings (e.g.,version development) as a specific supported version (#612). - Added
--index-onflag tosprocket runfor output indexing via symlinks (#606). - Added
--output-dirflag tosprocket run, replacing--runs-dirand--outputwith a unified output directory structure matching the server (#606). - Added SQLite database tracking to
sprocket runwith full provenance including session, run records, and task execution details (#606). - Added an
output.logfile to the run directory that captures all logged messages fromsprocket run(#613). - Added reading configuration from a
sprocket.tomlnext to the sprocket executable (#588). - Added
sprocket dev servercommand for running an HTTP API server for workflow execution (#540). - Added SQLite-backed database layer for tracking sessions, runs, and tasks (#540).
- Added index system for organizing run outputs via symlinks (#540).
- Added setting
check.rulestosprocket.tomlfor controllingwdl-lintrule configuration (#553). - Added the
--with-doc-commentsCLI option tosprocket dev docto enable support for the experimental documentation comments feature. (#551)
- The
sprocket runcommand now uses the same execution infrastructure as the server (#606). - Replaced
--runs-dirand--outputflags with--output-dirinsprocket run(#606). - Unified
AllowedSourceandSourcetypes into a singleSourcetype (#606). - The values for the
common.report_modesetting insprocket.tomlhave changed to lower kebab-case, e.g.fullandone-line(#607). - The
common.colorsetting insprocket.tomlhas been changed from being a boolean to an enum with valuesauto(default),always, andnever. (#607). - Replaced the
--no-coloroption for a global--coloroption to control output colorization and made the uncolorized output consistent (#607). - Renamed
--entrypointto--targetinsprocket runandsprocket validate(#540). sprocket dev docwill now fail in the presence of analysis errors that would produce invalid documentation (e.g.enums in versions < WDL v1.3) (#559).
- Fixed
sprocket validatenot checking thatFileandDirectoryinputs exist (#615). - Fixed a race condition where canceled workflows would be marked as
Failedinstead ofCanceled(#601).
- Dependencies updated to latest (#594).
- Bumps dependencies.
- WDL v1.3 is now enabled by default; the
wdl_1_3feature flag is deprecated and will emit a warning if explicitly disabled (#534).
- Added setting
run.tasks.digeststosprocket.tomlfor controlling content digests; supported values arestrongfor full cryptographic hashing of file content andweakto digest based solely off file metadata. The default is nowweak(#503). - Added setting
run.events_capacitytosprocket.tomlfor controlling the size of the events channel buffer that Sprocket uses for displaying progress statistics (#491). - Added an experimental
sprocket dev testcommand (#468, #489). - Added peak memory usage reporting at the DEBUG verbosity level (#482).
- Added support for WDL enumerations in preparation for WDL v1.3 (#445).
docnow properly initializes pages in dark mode by default (#478).
- Added
run.task.cacheandrun.task.cache_dirsettings tosprocket.tomlfor controlling call caching (#461). - Added
--no-call-cacheoption tosprocket runto disable use of the call cache for a specific run (#461). - Added
--azure-account-nameand--azure-access-keyCLI options tosprocket run(#454). - New lint rule
DocMetaStringsto ensure reserved meta and parameter_meta keys have string values (#407). - A
run.failoption was added tosprocket.tomlfor controlling the default failure mode (#444). - Added the
splitstandard library function in preparation for WDL v1.3 (#424). - Added support for
else ifandelseclauses in conditional statements (in support of WDL v1.3) (#411). - Added feature flags support to enable experimental WDL versions (#411).
- Added shell expansion to the
apptainer_images_dirconfig option, though this is an interim workaround for HPC path awkwardness pending the removal of this option entirely in the future (#435). - Added experimental Slurm + Apptainer backend (#436).
- Sprocket now supports "slow" and "fast" failure modes for evaluation errors an interruptions (Ctrl-C) (#444).
- The
wdl-analysisconfig flag that enables experimental WDL v1.3 features was renamed fromexperimental_versionstowdl_1_3(#435). - Removed the
wdl-clicrate, absorbing its code into thesprocketlibrary crate in preparation for future refactoring (#450). - Apptainer-based backends now store converted container images within each run directory, rather than in a user-specified directory (#463).
sprocket runnow writes a.sprocketignorefile directly to theruns/directory instead of theruns/<entrypoint>/directory (#481).
- Fixed a bug in
sprocket config initwheresprocket.tomlwas unnecessarily loaded and would fail if malformed (#473). - Fixed Sprocket commands not always showing the full context of errors (#472).
- running
sprocket runnow writes a.sprocketignorefile to the runs directory, which will tell subsequent Sprocket commands to ignore its contents (#469). - Improved the portability of generated Apptainer scripts (#442).
- Fixed the handling of unusual filenames in generated Apptainer scripts (#459).
docandformatnow work if analysis errors and not parse errors are encountered (#402).sprocket inputsnow correctly handles complex values (including empty or interpolated Strings) (#388, #399).
formatsubcommand has been re-implemented with a new CL API (#365).
- Added support for accepting input file paths by URL (#386).
- Accept multiple
--configoptions on the Sprocket CLI (#383). -c, --configand-s, --skip-config-searchare now global arguments (they can now appear after any subcommand) (#365).- Added experimental LSF + Apptainer backend (#182, #372, #378, #379, #404)
- Allow "bad"
SPROCKET_CONFIGenvironment variables to exist, although the user will get a warning if the specified path doesn't exist (#178).
- Bumped
wdldependency to latest (#179).
- Added
--unredactoption tosprocket config resolve(#173). - Added options to
sprocket check/lintfor enabling and disabling sets of lint rules based on the rules' tags (#169). - Added options to
sprocket dev docfor embedding a JS file into<script>tags on each HTML page (#170). - Added options to
sprocket runfor configuring AWS S3 and Google Cloud Storage authentication (#164). - Added progress bars for file transfers (#164).
--no-colorargument toformatis now respected (#167).sprocket explain --tag <tag>is now case-insensitive (#168).- The
--deny-notesargument tocheck/lintnow correctly implies--deny-warnings(#166).
- Enabling linting no longer runs every lint rule. Instead, a less opinionated set of rules are toggled on by default (#169).
sprocket dev docnow initializes on the "Full Directory" view for the left sidebar (#170).- The old behavior (initializing on the "Workflows" view) can be enabled with an option.
- Replaced
sprocket runprogress bar implementation with one based off of Crankshaft events (#164).
- Added support for
.sprocketignorefiles (#158).- the semantics of these new "ignorefiles" are similar to
.gitignorefiles - the commands
analyzer,check/lint, anddocall respect these files - both parent and child directories of the current working directory are searched for
.sprocketignorefiles
- the semantics of these new "ignorefiles" are similar to
- Added support for custom logos in
sprocket dev doc(#156).
- Added
cpu_limit_behaviorandmemory_limit_behaviorconfig options to enable ignoring host resource limits (wdl:#543). - Added code completion to the LSP (wdl:#519).
- Added new default output directory logic (#149).
- Individual analysis and lint rules can now be excepted when running the
analyzercommand (#150).- both command line flags and TOML config are supported
- The
UnusedCallanalysis rule no longer emits a diagnostic for tasks and workflows if they have an empty or missingoutputsection (wdl:#532). --nameoption renamed to--entrypointforvalidateandrun(#147).--entrypointis now required if no inputs are provided.--entrypointwill be prefixed to the key of any key-value pairs supplied on the command line.
- Removed the
OutputSectionlint rule (wdl:#532).
- Fixed the resolution of relative input files (wdl:#523)
- Removed the
--configoption ofsprocket run; the run command's configuration is now merged intosprocket.tomlunder therunsection (#121)
- The
ShellChecklint rule has been revisited to reduce false positives (wdl:#457). - Fixed unhelpful error message in
sprocket validate(#133). - Fixed run configuration to not use a default configuration when there is an error in the flattened engine configuration fields (#124).
- The
sprocket run,sprocket validate, andsprocket inputscommands will no longer require the--nameoption if passed a WDL document containing a single task and no workflow (#121). - The
sprocket runcommand now correctly includes the workflow/task name prefix in the output (#131).
- The LSP now supports "falling back" to interpresting WDL documents as v1.2
when the version is unrecognized (e.g.
version development) (wdl:#475). check,lint, andformatwill now default to the CWD if nosourceargument is provided (#137).- Added
devsubcommand to contain developmental and experimental subcommands (#120). - Added
dev locksubcommand to store container manifest checksums (#120). - Added
dev docsubcommand for documenting WDL workspaces (#107).
formatno longer accepts the input-for STDIN (#137).
- Added
shellcheckto Dockerfile (#114). - Fixed
check --exceptandexplainrule not being case-insensitive (#116).
- Updates dependencies (including
wdltov0.14.0).
- Fix
sprocket runnot printing analysis diagnostics (#110).
- Introduced the
runsubcommand (#102).
- Unknown
--exceptrules will now emit a warning instead of being silently ignored (#94) - Changed the
validate-inputssubcommand to the more concisevalidatesubcommand (#102). - Changed all existing subcommands to use the facilities provided in
wdl-cliwhen possible (#102). - Updates the underlying
wdldependency to v0.13.1 (#102).
- Added configuration file support (#104).
- Added
--hide_notestocheckto filter out note diagnostics from reporting (#84) - YAML support for
validate-inputscommand (#79). - Extend
explainto display related rules, list tags using--t, show WDL definitions using--definitions(#80).
- Updated WDL crates to latest (#79). This added many features and fixes. Some highlights:
- Fixed certain misplaced highlights from the
ShellChecklint. - Relaxed the
CommentWhitespacelint rule so it doesn't trigger for as many comments. - The
ImportSortlint rule now supplies the correct order of imports in thefixmessage.
- Fixed certain misplaced highlights from the
- By default, when checking a local file, suppress diagnostics from remote
files. Added a
--show-remote-diagnosticsflag to recreate the older behavior (#59). - Always emit any diagnostics with a
Severity::Errorregardless of other CL options that might suppress the diagnostic (#59).
- Bug introduced in #59 which sometimes caused the exit message to have an incorrect count of Notes and Warnings (#61).
- URLs can be checked/linted (#58).
- Added a
Dockerfileand automation to release Docker images with each Sprocket version (#56).
- Added
--local-onlyand--single-documentargs tocheck/lint(#48). - Added a
validate-inputscommand. (#48).
formatnow requires one of the--checkor--overwritearguments (#51).- Updated WDL crate to latest. This adds support for checking/linting remote URLs and other features and improvements (#48).
- Only allow one
fileargument tocheck/lintinstead of any number of local files and directories (#48).
- Updated WDL crate to latest; this includes some important fixes to using
sprocketon Windows and Linux (#35).
- Update to version 0.9.0 of
wdlcrate; this pulls in new lint rules, formatting support, and completes static analysis for thecheckandlintsubcommands (#24).
- Implemented the
checkcommand as a full static analysis (#17).
- Fixed the progress bar from showing up for short analysis jobs; it now is delayed by two seconds (#19).
- Update to version 0.7.0 of
wdlcrate. This pulls in many new lint rules.
- Update to version 0.6.0 of
wdlcrate.
--exceptarg tocheck --lintandlintsubcommands.
- Update to version 0.5.0 of
wdlcrate. This enables lint directive comments (AKA#@comments) among other new features.
checksubcommand with--lintparameter
- Update to version 0.4.0 of
wdlcrate. This features a new parser implementation
- exit code
2if there are no parse errors or validation failures, but there are lint warnings.- exit code
1if there are parse errors or validation failures; exit code0means there were no concerns found at all.
- exit code
explaincommand
- Update to version 0.3.0 of
wdlcrate. This pulls in new lint rules.