In-Depth Guide#
This section provides comprehensive, detailed explanations of woom’s core features and concepts. Each guide includes practical examples, best practices, and advanced usage patterns.
- Workflow Configuration In-Depth
- Task Configuration In-Depth
- Host Configuration In-Depth
- Context and Variables In-Depth
- What is the Context?
- Workflow Variables
- Task Variables
- Cycle Variables
- Ensemble Member Variables
- Custom Parameters
- Environment Variables
- Host Variables
- Complete Context Example
- Advanced Techniques
- Accessing Context Programmatically
- Best Practices
- Common Patterns
- Troubleshooting
- Migration Guide
- See Also
- Templating In-Depth
- Artifacts In-Depth
Overview#
Woom is built around three main configuration files:
workflow.cfg - Defines your workflow structure, cycles, ensemble, and stages
tasks.cfg - Defines individual tasks with their commands, environments, and artifacts
hosts.cfg - Defines execution environments (local, HPC clusters) with schedulers and queues
These files work together with a powerful templating system that allows you to:
Generate dynamic configuration files using Jinja2 templates
Fill template files with context variables (task name, cycle dates, member IDs, etc.)
Create portable workflows that adapt to different environments
Core Concepts#
Workflows#
A workflow orchestrates the execution of multiple tasks across different stages:
Prolog: Setup tasks that run once at the beginning
Cycles: Tasks that repeat for different time periods or iterations
Epilog: Cleanup tasks that run once at the end
Tasks#
Tasks are the fundamental units of work in woom. Each task:
Executes a command line in a specific environment
Can produce artifacts (output files) that are tracked
Can depend on other tasks through the workflow structure
Can fill template files before execution
Hosts#
Hosts define where and how tasks execute:
Local execution with background processes
HPC schedulers (SLURM, PBS Pro)
Custom environments with modules and virtual environments
Queue configurations for different resource requirements
Context and Variables#
The context provides variables available for templating:
Workflow information (paths, application name)
Task details (name, run directory)
Cycle information (dates, intervals, tokens)
Ensemble member data
Custom parameters from configuration
Getting Started#
For a complete understanding of woom, we recommend reading the guides in this order:
Workflow Configuration In-Depth - Understand workflow structure and stages
Task Configuration In-Depth - Learn how to define and configure tasks
Host Configuration In-Depth - Set up execution environments
Context and Variables In-Depth - Master the variable system
Templating In-Depth - Use Jinja2 templates for dynamic content
Artifacts In-Depth - Track and validate output files
Each guide builds on concepts from previous sections while remaining self-contained enough to use as a reference.