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
)