Refactored DefaultTaskExecutionPlan to use TaskDependencyGraph to determine execution plan
Added 'must run after' task ordering
Order buildDashboard tasks to always run after reporting tasks
Do not track nodes without incoming edges in TaskDependencyGraph and use added tasks as entry points to execution plan in DefaultTaskExecutionPlan
Simplify adding graph nodes and edges
Differentiate between soft and hard edges in TaskDependencyGraph
Add mustRunAfter dependencies before regular dependencies to execution plan, continue execution of task with must run after dependency if the dependee task fails
Reduce number of task lookups in graph
Merged TaskInfo and TaskDependencyGraphNode
Determine executionPlan only after all tasks are added
Lazy evaluation of must run after dependencies
Add user nagging for Task.setMustRunAfter(Iterable)
Use NON_REQUIRED state in TaskInfo instead of required field and remove executionDependencies field
Add docs around mustRunAfter
REVIEW-1648 Moving forward with the refactorings in the command line args conversion (needed for REVIEW-1198).
Moved the ToolingModelBuilderRegistry implementation to core and made available as a service,
Allow built-in plugins to contribute implicit project configuration actions. The mechanism is pretty basic and only works for built-in plugins. Moved ImplicitTasksConfigurer to live in the diagnostics plugin project.
Make sure stream is closed.
Added annotation.
Moved integration test to live in coreImpl.