Implement comprehensive dry-run functionality for multi-repository event-driven workflows.
Description
This issue implements advanced dry-run capabilities that provide detailed insights into what a workflow execution would do without actually performing any actions.
Dry-Run Features
- Execution plan visualization across repository boundaries
- Event simulation with subscription evaluation
- Template variable resolution without execution
- Resource requirement analysis and validation
- Dependency graph visualization
CLI Usage
# Basic dry-run
tako exec --dry-run release
# Multi-repository dry-run with event simulation
tako exec --dry-run release --repo=my-org/go-lib --inputs.version-bump=minor
# Subscription debugging
tako exec --dry-run release --debug-subscriptions
# Template resolution preview
tako exec --dry-run integration_test --show-templates
Example Output
Execution Plan for: release (my-org/go-lib)
├── Step: build_library
│ ├── Command: ./scripts/build.sh --bump minor
│ ├── Templates: {{ .inputs.version-bump }} → minor
│ └── Events: library_built (schema v1.0.0)
├── Step: fan_out_to_dependents
│ ├── Event: library_built
│ ├── Subscribers: my-org/app-one, my-org/app-two
│ └── Wait: true (timeout: 2h)
└── Expected Execution Tree:
├── my-org/go-lib [parent]
├── my-org/app-one [subscriber: library_built]
└── my-org/app-two [subscriber: library_built]
Implementation Details
- Add execution plan generation for multi-repository scenarios
- Implement event simulation for debugging subscription filters
- Support template resolution display without side effects
- Create dependency graph visualization
- Add resource requirement analysis and validation
Acceptance Criteria
Files to Modify
internal/engine/dryrun.go (new)
internal/engine/simulation.go (new)
cmd/tako/internal/exec.go (extend)
Related Issues
Implement comprehensive dry-run functionality for multi-repository event-driven workflows.
Description
This issue implements advanced dry-run capabilities that provide detailed insights into what a workflow execution would do without actually performing any actions.
Dry-Run Features
CLI Usage
Example Output
Implementation Details
Acceptance Criteria
Files to Modify
internal/engine/dryrun.go(new)internal/engine/simulation.go(new)cmd/tako/internal/exec.go(extend)Related Issues