Fallout-build / Fallout-build/Fallout
[Foundation] FT-8: Opt-in DAG-parallel target execution
- Dominant language
- C#
- Stars
- 154
- Forks
- 19
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 15
Description
## Summary
Add **opt-in DAG-parallel target execution**. The dependency graph already encodes what can run concurrently; the engine just doesn't exploit it. Default stays sequential.
## Findings (file:line)
- `BuildExecutor.cs:42` — execution is a serial `ExecutionPlan.ForEach(...)`.
- `Fallout.Core/Planning/TopoSort.cs:93-107` — independent nodes are detected per step but only used to flag ambiguity in strict mode; output is a flat linear order, not parallel waves.
- `Partition` is CI-machine sharding, **not** intra-build parallelism — distinct feature.
## Scope
- Have `TopoSort` expose ready-sets / waves (nodes whose dependencies are satisfied).
- Replace the serial loop with a bounded concurrent scheduler honoring `DependencyBehavior`, `ProceedAfterFailure`, `AssuredAfterFailure`.
- Gate behind `--parallel[=N]`, default **off**.
## Acceptance criteria
- Independent targets run concurrently when the flag is set.
- Serial execution remains the default and is behavior-identical to today.
- Failure/skip/assured-cleanup semantics preserved under parallelism.
## Notes
- **Non-breaking** (opt-in flag).
- Depends on: FT-3, FT-4, FT-5, FT-6 (de-statification + thread-safe logging must land first).
- Size: **L**. Own sub-thread of the epic.
Contributor guide
Assessment
This issue has not been assessed yet.