anchor.diff:  They only declare relationships.
   ====
   
  -link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:mustRunAfter(java.lang.Object++[]++)[Task.mustRunAfter(...)] and link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:shouldRunAfter(java.lang.Object++[]++)[Task.shouldRunAfter(...)] represent soft relationships.
  -These relationships will _order_ execution between the related tasks, but only if they exist in the same execution.
  -They will not, in any context, cause task creation.
  -
  -link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:dependsOn(java.lang.Object++[]++)[Task.dependsOn(...)] and link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:finalizedBy(java.lang.Object++[]++)[Task.finalizedBy(...)] represent strong relationships.
  -These relationships will _force_ a task to be at least configured, but the same applies as before: calling these methods will not result in task creation.
  -What's important is to understand in which context they will cause an effect:
  -
  -- If a task is _not_ executed (regardless if it was created with link:{groovyDslPath}/org.gradle.api.tasks.TaskContainer.html#org.gradle.api.tasks.TaskContainer:register(java.lang.String)[Task.register(...)]
  -or link:{groovyDslPath}/org.gradle.api.tasks.TaskContainer.html#org.gradle.api.tasks.TaskContainer:create(java.lang.String)[Task.create(...)]), the defined relationships will not trigger any task creation.
  -- If a task _is_ executed, all strongly associated tasks need to be created and configured, as they might have other `dependsOn` or `finalizedBy` relationships.
  -This will happen transitively, until there is a task without strong relationships.
  +link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:mustRunAfter(java.lang.Object++[]++)[Task.mustRunAfter(...)] and link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:shouldRunAfter(java.lang.Object++[]++)[Task.shouldRunAfter(...)] represent soft relationships. These relationships will _order_ execution between the related tasks, but only if they exist in the same execution. They will not, in any context, cause task creation.
  +
  +link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:dependsOn(java.lang.Object++[]++)[Task.dependsOn(...)] and link:{groovyDslPath}/org.gradle.api.Task.html#org.gradle.api.Task:finalizedBy(java.lang.Object++[]++)[Task.finalizedBy(...)] represent strong relationships. These relationships will _force_ a task to be at least configured, but the same applies as before: calling these methods will not result in task creation. What's important is to understand in which context they will cause an effect:
  +
  +- If a task is _not_ executed (regardless if it was created with link:{groovyDslPath}/org.gradle.api.tasks.TaskContainer.html#org.gradle.api.tasks.TaskContainer:register(java.lang.String)[Task.register(...)] or link:{groovyDslPath}/org.gradle.api.tasks.TaskContainer.html#org.gradle.api.tasks.TaskContainer:create(java.lang.String)[Task.create(...)]), the defined relationships will not trigger any task creation.
  +- If a task _is_ executed, all strongly associated tasks need to be created and configured, as they might have other `dependsOn` or `finalizedBy` relationships. This will happen transitively, until there is a task without strong relationships.
   
   [[sec:task_configuration_avoidance_migration_guidelines]]
   == Migration Guide
  
positive.code: }
  ----
  +
  Similarly, Gradle has syntactic sugar that allows tasks to be referenced by name without an explicit query method.
  This can also cause the task to be immediately created:
  +
  [source,groovy]
  ----
  
negative.code: =====
  ====
  
      - **Migrate the consumer task to the new API.**
  +
  [source,groovy]
  ----
  