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)
sonar-runner plugin fixes
Test for publishToMavenLocal with maven-publish quickstart sample
Use NON_REQUIRED state in TaskInfo instead of required field and remove executionDependencies field
Updated userguide for changes to the way the publishing extension is configured
Create publishToMavenLocal lifecycle task early, rather than waiting for publishing extension to be configured
Updated release notes for lazy-configuration of publishing extension
Use @Inherited so that @DeferredConfigurable annotation works as hoped
Renamed ArtifactRepositoryInternal.createResolver() to createLegacyDslObject() to better reflect what the method does, and to cause a small amount of discomfort to whoever writes code that calls this method.