CompositeBuildDependencyCycleIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Let composite-build tests not use deprecated configurations

    • -15
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 12 more files in changeset.
Let composite-build tests not use deprecated configurations

    • -15
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 12 more files in changeset.
Let composite-build tests not use deprecated configurations

    • -15
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 12 more files in changeset.
Use java-library and its configurations in ResolveTestFixture

This mainly influences the composite build tests which intensively

use this fixture.

    • -15
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 13 more files in changeset.
Expose file collection dependencies declared in included builds to consumers in other builds in the composite.

Rework task graph assembly so that tasks that cross build boundaries as a dependency of another task no longer need to be wrapped in a `TaskReference` and remove the special handling from dependency resolution artifact and IDE artifact implementations.

No longer add a synthetic delegate task to each project that such a task is consumed as a dependency and decouple the task execution plan from `Task` slightly so that it can deal with the difference between tasks in the current build and tasks running asynchronously in another build.

    • -22
    • +6
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 24 more files in changeset.
Cleanup some TODOs

    • -7
    • +1
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 6 more files in changeset.
Remove unused field from integration tests

    • -3
    • +0
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 1 more file in changeset.
Changed the way that the target configuration for a project dependency is calculated, to always select only from the configurations of the target project that have attributes attached, regardless of whether the consumer has defined any attributes or not. Fall back to `default` only when the target project has no configurations with attributes defined.

This introduces a breaking change when consuming the output of a project with the Java plugin applied from a project that does not have the Java plugin applied. Previously, the `default` configuration would be selected, now the `runtimeElements` configuration is selected. However, this is consistent with the case where the consuming project is also using the Java plugin or is using the Android plugin. It also means that custom configurations in these projects will select the same thing as the runtime classpath configuration.

    • -0
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 13 more files in changeset.
Fix tests for parallelism

    • -7
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 2 more files in changeset.
Don't wrap exceptions from included builds

    • -13
    • +5
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 6 more files in changeset.
Format the project path in display names for `ProjectComponentIdentifier` in the same way that the fully qualified project path is formatted elsewhere.

This logic is still duplicated in `DefaultProjectComponentIdentifier`, and instead the value already calculated for the project should be reused instead of recalculated.

    • -14
    • +14
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 9 more files in changeset.
Improve exception message for included build task failure

    • -10
    • +10
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 4 more files in changeset.
Add more context to TODO

    • -3
    • +6
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
Reworked dependency result artifact/file ordering to address some issues and to make 'consumer first' the default ordering.

Specifically, nodes in the graph are now sorted by component, rather than sorting by node. When sorting by node for a component with multiple nodes in the graph (eg a direct dependency on a maven module from a Gradle project plus a transitive dependency via another maven module, but also possible in other ways) it was possible for a particular component to appear _before_ all of its consumers.

This change affects the arbitrary order for files/artifacts that form a cycle.

    • -8
    • +8
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 13 more files in changeset.
Removed `ProjectArtifactBuilder.willBuild`

When building included build artifacts on-demand (for buildscript classpath)

executed tasks independently, rather than trying to accumulate all of the

tasks that _will be_ executed up front.

This simplifies the implementation and fixes a bug where some included

build tasks were executed twice.

    • -3
    • +0
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 7 more files in changeset.
Moved included build cycle detection out of executer

Previously, build cycle detection was performed while executing builds.

Now, cycle detection is now done prior to execution, based on the graph of

build dependencies.

This has resulted in a slight regression on cycle reporting, but will

allow us to move forward with parallel build execution for now.

    • -11
    • +15
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 7 more files in changeset.
Fixed handling of build dependencies when there is a cyclic dependency between builds in a composite build. Reenabled test coverage for this case, and added some more coverage.

    • -3
    • +42
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 2 more files in changeset.
Ignore broken test temporarily.

    • -0
    • +3
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
Improved tests for build dependency cycles

- Extracted into separate test case

- Consolidated coverage for graph resolution and artifact building

    • -0
    • +234
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 2 more files in changeset.
Better reporting for build dependency cycles

- Track source and target for included build executions

- Include full cycle report in failure message

    • -3
    • +10
    ./CompositeBuildDependencyCycleIntegrationTest.groovy
  1. … 6 more files in changeset.