What’s new#
Develop#
New features#
Add the ability to skip tasks: a task can be excluded from submission while remaining in the task tree, so downstream tasks can still reference its artifacts. Skip a task permanently with
skip = Trueintasks.cfg, or at runtime withskip = task1 task2in[stages]ofworkflow.cfg, or viawoom run --skip task1 task2on the CLI. Skipped tasks appear asSKIPPED(bold cyan) inwoom show status[PR35].Add the
woom monitorcommand: a lightweight Flask-based web UI for launching, monitoring, and stopping workflows from a browser. Features include a live log stream (SSE), artifact browser with download links, an interactive crontab scheduler helper, and a dark/light theme toggle.The monitor Overview tab now displays an interactive visual task tree (clickable task nodes, cross-highlighted in the Jobs table) and collapsible workflow/tasks configuration panels.
Add colors to
woom show status.App name is now inferred from
workflow_dirwhen undefined.Add the
nnodes,ncpus,nnodesandpmemsubmission options to tasks.Add the
Contextclass that holds the input mappings for Jinja substitutions [PR16].Add the possibility to skip the artifact existence checking [PR16].
Add the support for generating artifact paths with a registered function through a
artifacts_generatorsextension [PR16].The
Workflow.get_task_submission_dir,Workflow.get_task_run_dir,Workflow.get_task_artifactscan now return all possible values, i.e or all cycles and members as a dict or a flat list [PR16].Add a template and blocking option to task configuration [PR18].
Add a graceful option to
Workflow.killto terminate jobs without killing them [PR18].Add a sentinel job that monitor jobs when using a scheduler [PR18].
Add the capability to fill templates with a decated section in tasks and with the
woom fillcommand [PR22].User paramaters specified in the workflow configuration can now contain sub-sections [PR22].
PBS Pro:
nnodes,ncpus,memoryandpmemare now merged into a single-l select=N:ncpus=X:mpiprocs=X:mem=Ydirective, fixing conflicts where PBS Pro rejects standalone-l ncpus=X,-l mem=Yor-l pmem=Zalongside-l select=....PBS Pro: the
extrasubmission option in[[submit]]now accepts a user-provided value (default:-koed). Arbitrary keys added via__many__are also passed verbatim as raw qsub flags before the script path.Submission options
nnodes,ncpusandngpusin[[submit]]now accept Jinja2 template expressions (e.g.nnodes = {{ params.nnodes }}); they are rendered at submission time using the task context.woom run --dry-runnow logs a one-line summary per task atINFOlevel (Fake submission: <task_path> → <qsub command>); full detail remains available atDEBUG.Switch CI and pre-commit to ruff [PR34]
Add a
horizonoption to the[cycles]section: whenas_intervals=False, setsend_date = begin_date + horizonon eachCycle, makingcycle_end_dateandcycle_durationavailable in templates [PR38].
Breaking changes#
Artifacts are now configured with one section per artifact [PR16].
Workflow.get_submission_diris renamed Workflow.get_task_submission_dir`Workflow.get_run_diris renamedWorkflow.get_task_run_dir.--update `` run option is renamed ``--force[PR18].User paramaters used in jinja rendering are now only accessible in the
paramsvariable [PR22].PBS Pro: the
extrasubmission option format string changed from the hardcoded-keodto{}; users who relied on the implicit-keodflag must now setextra = -koedexplicitly (or keep the new default declared intasks.ini).
Deprecations#
Bug fixes#
Fix job dependencies being lost between cycles when tasks are skipped via
--skipor[stages] skip:task_dependandsequence_dependare now preserved across skipped tasks instead of being reset to an empty list [PR39].SLURM: remove the hardcoded
--exclusiveflag fromsbatchsubmissions; this option depends on the partition and should be set by the user in the[[submit]]section of their task when needed.Fix relative artifact paths being joined with an un-rendered
run_dirJinja template, causing the path to be resolved in the calling task’s context instead of the artifact’s own task context.Fix
Workflow.get_artifactsiterating over characters of a path string for single-path artifacts instead of treating the string as one path.Fix
Host.get_envthat was ignoringraw_textanduv_venvconfiguration options.run_dir,submission_dir,script_path,envmust now be prefixed withtask_in a jinja rendering.
Documentation#
2025.10.1#
Initial version.