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.