How educationwarehouse/edwh works
edwh is a Python task-runner and maintenance CLI for development projects. Its principal workflow is a user invoking a command, with ewok loading core tasks, plugins, and local tasks, then running project maintenance actions and reporting results. Major documented capabilities include plugin management, project discovery, lint/format/test tasks, release routing, sudo credential setup, and branch worktrees. Source excerpts support the CLI/task-loading boundary, worktree orchestration, pipeline rendering, and plugin/release behavior; several other task internals are unsampled, so their internal call links are intentionally limited.
Main entry points: worktree.py Worktree Tasks · tasks.py Core Tasks · cli.py CLI App · plugin.py Plugin Tasks
Components 22
Command Runtime
- CLI App
src/edwh/cli.py - Core Tasks
src/edwh/tasks.py - Task Discovery
src/edwh/discover.py
Project Maintenance
- Project Operations
src/edwh/tasks.py - Project Inventory
src/edwh/discover.py
Worktree Environments
- Worktree Tasks
src/edwh/local_tasks/worktree.py - Project Configuration
- Database Seeding
src/edwh/local_tasks/worktree.py
Plugins And Release
- Plugin Tasks
src/edwh/local_tasks/plugin.py - Plugin Packages
- Release Routing
src/edwh/release_backend.py
Execution Feedback
- Step Runner
src/edwh/pipeline.py - Terminal Renderer
src/edwh/tui.py
Other components
- Developer
- PyPI
- vommit
- OS Keyring
- SSH Agent
- Git Worktrees
- Compose Services
- Ruff And Ty
- Pytest
Connections 24
- Developer → CLI App: invokes
- CLI App → Core Tasks: loads
- CLI App → Plugin Tasks: loads
- CLI App → Worktree Tasks: loads
- Core Tasks → Task Discovery: runs discovery
- Task Discovery → Project Inventory: produces inventory
- Developer → Plugin Tasks: manages plugins
- Plugin Tasks → Plugin Packages: installs packages
- Plugin Tasks → PyPI: fetches metadata
- Developer → Release Routing: requests release
- Release Routing → vommit: delegates release
- Core Tasks → OS Keyring: uses credentials
- Core Tasks → SSH Agent: configures fallback
- Developer → Worktree Tasks: manages branches
- Worktree Tasks → Git Worktrees: creates worktree
- Worktree Tasks → Project Configuration: copies and rewrites
- Worktree Tasks → Core Tasks: runs setup
- Worktree Tasks → Compose Services: starts services
- Worktree Tasks → Database Seeding: selects seed
- Worktree Tasks → Step Runner: queues steps
- Step Runner → Terminal Renderer: sends status
- Developer → Project Operations: runs maintenance
- Project Operations → Ruff And Ty: runs lint
- Project Operations → Pytest: runs tests