Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Expose Gradle to RootBuildLifecycleListener methods

    • -6
    • +6
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 6 more files in changeset.
Fix test

    • -15
    • +15
    ./internal/DefaultIncludedBuildRegistryTest.groovy
Disallow `buildSrc` as the name of an included build

Except for the actual buildSrc build

    • -7
    • +7
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 5 more files in changeset.
Make paths/names of included builds immutable (#10998)

Changes the “build path” for included builds to be determined at inclusion time based on the directory name, or a user supplied override. Previously, we tried to use the root project name defined in the included build. This caused a lot of complexity due to it not being known until part way through building the included build.

This change also disallows use of `buildSrc` as a project name, as it collides with the `buildSrc` nested build.

    • -43
    • +54
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 72 more files in changeset.
Fix test

    • -38
    • +44
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 1 more file in changeset.
Ensure build paths are unique before using them

Also pushes uniqueness validation earlier

    • -2
    • +1
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 7 more files in changeset.
Fix tests

    • -7
    • +5
    ./internal/DefaultIncludedBuildRegistryTest.groovy
Make paths/names of included builds immutable

    • -2
    • +10
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 32 more files in changeset.
Fix regression when deprecating search upward APIs

    • -2
    • +3
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 11 more files in changeset.
Fix regression when deprecating search upward APIs

    • -2
    • +3
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 12 more files in changeset.
Simplify the registration of projects within a composite build, so that the same logic is used regardless of the role that a build plays in a composite rather than being implemented differently for the root build, included build, `buildSrc` and so on.

    • -1
    • +1
    ./internal/DefaultIncludedBuildTest.groovy
    • -1
    • +1
    ./internal/DefaultNestedBuildTest.groovy
  1. … 14 more files in changeset.
Simplify slightly the logic that creates the root build of a build tree. The factory method no longer takes parameters for services that are already provided by the session.

    • -9
    • +9
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -6
    • +4
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 25 more files in changeset.
Rework `ProjectPublicationRegistry` API so that different kinds of local publications can carry different information.

    • -13
    • +13
    ./internal/DefaultIncludedBuildTest.groovy
  1. … 19 more files in changeset.
Allow plugins defined in included builds to be resolved using the `plugins { }` block.

The `plugins { }` block in a build script will now substitute a binary plugin with a plugin that has the requested plugin id and that is defined in an included build using the `java-gradle-plugin` plugin. Does not substitute plugins defined in the root build, or in the consuming included build, or in any source dependency. Does not substitute plugins that are not defined using the `java-gradle-plugin`.

    • -1
    • +34
    ./internal/DefaultIncludedBuildTest.groovy
  1. … 24 more files in changeset.
Allow lenient project locking when getting project models from tooling api

    • -0
    • +4
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 8 more files in changeset.
Remove deprecated Class.newInstance() (#6496)

`Class.newInstance()` was deprecated in Java 9.

    • -1
    • +1
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 34 more files in changeset.
Expose which build included the build being loaded to operation listeners (#6181)

* Record which build included the build and expose in LoadBuild operation

    • -1
    • +1
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 26 more files in changeset.
Always use `buildSrc` as identity path of the root project of a `buildSrc` build, regardless of what the root project name happens to be.

Continue to move responsibility for calculation of the identifiers, paths and names of builds into the `BuildState` implementations from various other places. The calculation of the build and project identity paths is still quite messy.

    • -12
    • +70
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -2
    • +2
    ./internal/DefaultIncludedBuildTest.groovy
    • -1
    • +6
    ./internal/DefaultNestedBuildTest.groovy
  1. … 12 more files in changeset.
Change the (internal) API used to create various kinds of builds to use a `BuildState` instead of `NestedBuildFactory` to represent the owning build. This way, `NestedBuildFactory` and `GradleLauncher` and friends become an internal concern of the build tree infrastructure.

    • -13
    • +24
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -9
    • +10
    ./internal/DefaultNestedBuildTest.groovy
    • -24
    • +13
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 21 more files in changeset.
Change `ProjectComponentIdentifier` and `ProjectComponentSelector` implementations to carry enough information to report the correct display name and project name. Change more places to delegate to the `BuildState` for a particular build to determine these values for a given project, rather than duplicating the logic to calculate these things.

    • -1
    • +12
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -2
    • +7
    ./internal/DefaultIncludedBuildTest.groovy
  1. … 42 more files in changeset.
Change the factory methods that create a `GradleLauncher` instance for a build to take the owning `BuildState`. This allows the factory methods that create various kinds of nested builds to be contextualized with the containing build.

    • -2
    • +2
    ./internal/DefaultNestedBuildTest.groovy
    • -9
    • +9
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 14 more files in changeset.
Use the `BuildIdentifier` that was assigned to a build when it was registered to refer to that build is most places.

- The build identifier was previously being unpacked to a name string in a few places and recreated from this, potentially losing some context and making too many assumptions about the uniqueness of the name.

- The project dependencies in `LocalComponentMetadata` are no longer transformed to map the build identifier to a "foreign" build identifier. The original build identifier is used instead.

- A "foreign" build identifier is still included in the `LocalComponentMetadata` to make the `isCurrentBuild()` work correctly in the resolution result. This method should go away at some point or at least the "foreign" build identifier should move closer to the result implementation rather than living in the metadata.

    • -1
    • +1
    ./internal/DefaultIncludedBuildTest.groovy
  1. … 22 more files in changeset.
Fix assignment of `BuildIdentifier` when there are multiple `buildSrc` builds in the build tree.

    • -0
    • +16
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -9
    • +5
    ./internal/DefaultNestedBuildTest.groovy
  1. … 3 more files in changeset.
Inject the assigned `BuildIdentifier` for a build into the build scope services for that build, and in particular into the `BuildIdentity` service.

    • -2
    • +8
    ./internal/DefaultNestedBuildTest.groovy
    • -9
    • +15
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 11 more files in changeset.
Assign a `BuildIdentifier` to each build when it is defined, rather than after the settings of the build have been configured. This identifier will be used during the whole lifetime of the build to identify the build within a build tree, but isn't wired into the correct places yet.

    • -6
    • +43
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -1
    • +2
    ./internal/DefaultIncludedBuildTest.groovy
    • -1
    • +4
    ./internal/DefaultNestedBuildTest.groovy
  1. … 7 more files in changeset.
Tidy up the internal API to create and run a nested build so that it more closely matches the API used to define and run the root build, and to define included builds.

    • -2
    • +1
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -0
    • +80
    ./internal/DefaultNestedBuildTest.groovy
    • -42
    • +24
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 10 more files in changeset.
Introduce an interface to represent the root build of a build tree, and use this to manage the execution of the root build.

    • -1
    • +20
    ./internal/DefaultIncludedBuildRegistryTest.groovy
    • -0
    • +245
    ./internal/DefaultRootBuildStateTest.groovy
  1. … 11 more files in changeset.
Ensure that at most one thread accesses the mutable state of a project at any given time while calculating the `LocalComponentMetadata` for the project during dependency resolution (and other times).

    • -2
    • +1
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 12 more files in changeset.
Fix `ProjectBuilder` so that the projects that it creates are registered in the `ProjectStateRegistry` so that those capabilities that use this service (project dependency resolution, IDE plugins) work as expected when used from tests.

    • -3
    • +2
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 5 more files in changeset.
Rename a service implementation to match the service interface name.

    • -2
    • +2
    ./internal/DefaultIncludedBuildRegistryTest.groovy
  1. … 7 more files in changeset.