Task Scheduling
Task Dependencies
All tasks are executed in an order such
that a task's dependencies are satisfied
when it is executed. Dependency relationships between tasks
form a directed graph.
Conflict Avoidance
In some cases it is possible to adjust package installation order
to avoid having two conflicting packages installed simultaneously.
TODO: Automatically uninstall packages when necessary to avoid conflicts.
Circular Dependencies
TODO: Automatically solve circular dependencies by temporarily disabling
conditional dependencies and then rebuilding packages with the conditional
dependencies enabled.
Parallel Scheduling
TODO: Spawn an appropriate number of tasks in parallel when desired.