Skip to content

[CU-86b4umhm1] Update dependency miniwdl to v1.15.0 - #106

Open
dnastack-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/miniwdl-1.x
Open

dnastack-renovate[bot] wants to merge 1 commit into
mainfrom
renovate/miniwdl-1.x

Conversation

@dnastack-renovate

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
miniwdl ==1.14.2 → ==1.15.0 age adoption passing confidence

Release Notes

chanzuckerberg/miniwdl (miniwdl)

v1.15.0

Compare Source

PyPI version Anaconda-Server Badge Getting Started

miniwdl v1.15.0 completes support for WDL 1.2. (version 1.2)

The largest miniwdl update in some years shouldn't make any breaking changes in the CLI and Python API. But the runner has a few behavioral changes & restrictions that may necessitate ops/deploy adjustments, while advanced usage of internal (non-API) functionality might be more affected.

WDL 1.2 has many useful new features, of which we'll highlight just a few here:

Finalized development features

miniwdl's version development has supported these for some time, now finalized in version 1.2:

Source-relative input paths

Task and workflow declarations may bind File and Directory declarations to hard-coded relative paths, which the runner resolves in the directory containing the WDL file. This allows helper scripts and reference data to live as separate files alongside the WDL source, instead of inlining them in task commands, taking them as workflow inputs, or baking them into docker images. (Those options each remain useful & appropriate in different cases.)

annotate/
├── annotate.wdl
├── annotate.py
└── gene_panel.tsv
version 1.2

task annotate {
    input {
        File variants
        # Defaults resolved next to annotate.wdl:
        File panel = "gene_panel.tsv"
        File script = "annotate.py"
    }
    command <<<
        python3 ~{script} --panel ~{panel} ~{variants} > annotated.tsv
    >>>
    output {
        File annotated = "annotated.tsv"
    }
    requirements {
        container: "continuumio/miniconda3"
    }
}
# From anywhere on the system — the helper script and gene panel still resolve:
miniwdl run /opt/pipelines/annotate/annotate.wdl variants=sample.vcf

Relative paths are resolved this way in input declarations, their defaults, and private declarations — including inside compound values such as Array[File] and Map[File, …]. In task output sections, relative paths are still resolved in the task's working directory.

Notes:

  • ⚠️ Isolation change. This feature slightly relaxes the runner's default filesystem access model. Previously, a run could only read local files and directories explicitly listed in its inputs (absent the [file_io] allow_any_input configuration setting). It can now also read files and directories in the WDL source tree where the relative path appears. (Consequently, if you override the [file_io] root configuration setting, miniwdl now requires the source tree as well as all input files to reside under that directory.)
  • Call cache invalidation accounts for these paths: the runner records the source-relative paths a call used, so a cached result is invalidated if they change. This requires a new call-cache format version, invalidating all outputs cached before v1.15.0.
  • miniwdl zip --add for adding non-WDL files now preserves their source-relative paths in the archive. For now (#​878), the operator must explicitly --add all necessary source-relative files and directories (glob patterns are supported).
  • Source-relative input paths are currently only supported for WDL source trees on a mounted filesystem, not when accessed by URI.

Other notable changes

  • Path canonicalization: File/Directory values are lexically normalized (e.g. ./a//b → a/b, trailing slashes stripped from Directory).
  • Optional File/Directory validation: an optional File?/Directory? input that exists but is the wrong kind (e.g. an actual directory for a File value) is now rejected rather than silently treated as absent (#​888).
  • Task retries: fixed input-path mount handling on task retry, which could cause missing inputs on retried attempts in some environments (#​895).
  • hints sections are accepted by the parser, but not yet used nor exposed through the API (#​785).

This implementation was enabled by the WDL community's enormous efforts to draft and clarify the specification, as well as AI coding agents making it possible to ship with limited (human) resourcing. Mahalo!


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

0 participants