RH OVE Ecosystem - Task Management¶
This document describes the task management system for the RH OVE Ecosystem project.
Task Runner¶
This project uses Go's Task (gotask) as a task runner to simplify common development and maintenance tasks.
Installing Task¶
If you don't have task installed:
# macOS
brew install go-task/tap/go-task
# Linux
sh -c "$(curl -ssL https://taskfile.dev/install.sh)"
# Or via Go
go install github.com/go-task/task/v3/cmd/task@latest
# Or download from releases
# https://github.com/go-task/task/releases
Global Tasks (Project Root)¶
From the project root directory, run:
Available Global Tasks¶
task setup- Setup the entire project environmenttask clean- Clean all temporary files and cachestask export-workload- Export workload data to XLSXtask docs:build- Generate project documentationtask docs:serve- Serve documentation locallytask health-check- Run project health checktask update- Update all dependenciestask status- Show project statustask init- Initialize a new development environmenttask ci- Run continuous integration checks
Scripts-Specific Tasks¶
From the scripts/ directory, run:
Available Scripts Tasks¶
task setup- Setup the scripts environmenttask install- Install dependenciestask add <dep>- Add a new dependency (with prompt)task export-workload- Run the workload export scripttask export-workload-py- Run export script directly with Pythontask check- Check Python syntaxtask format- Format codetask lint- Lint codetask test- Run teststask clean- Clean Python cache filestask update- Update dependenciestask info- Show project informationtask dev-setup- Install development toolstask dev- Run development workflowtask build- Build/validate the projecttask watch- Watch for changes and run exporttask validate- Validate all aspects of the project
Quick Start¶
-
Initial Setup:
-
Export Workload Data:
-
Check Project Health:
-
Development Workflow (from root):
-
Watch for Changes (from root):
-
Or work directly in scripts directory:
File Structure¶
.
├── Taskfile.yml # Global task definitions
├── scripts/
│ ├── Taskfile.yml # Scripts-specific task definitions
│ ├── pyproject.toml # Python project configuration
│ └── *.py # Python scripts
└── docs/
└── export/ # Generated export files
Advanced Features¶
Task Dependencies¶
Tasks can depend on other tasks:
File Watching¶
Task supports file watching with sources and generates:
tasks:
export-workload:
sources:
- "{{.SOURCE_FILE}}"
- export_workload_to_xlsx.py
generates:
- "{{.EXPORT_FILE}}"
cmds:
- uv run export-workload
Variables and Templating¶
Use variables for configuration:
vars:
PROJECT_NAME: RH OVE Ecosystem
SCRIPTS_DIR: scripts
tasks:
info:
cmds:
- echo "Project: {{.PROJECT_NAME}}"
Adding New Tasks¶
To add new tasks, edit the appropriate Taskfile.yml:
- Global tasks: Edit
./Taskfile.yml - Scripts tasks: Edit
./scripts/Taskfile.yml
Example Task¶
tasks:
my-task:
desc: Description of what the task does
deps:
- other-task
sources:
- src/**/*.py
generates:
- dist/output.txt
cmds:
- echo "Running task..."
- command-to-run
- echo "Task complete!"
Dependencies¶
task- Go-based task runneruv- Python package manager (for scripts)mkdocs- Documentation generator (optional)watchexec- File watcher (optional, fortask watch)