Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Further invalid dependency declaration

* Prevent combining artifact and target configuration declaration

Fixes #10532

    • -7
    • +14
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -3
    • +23
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -3
    • +21
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 2 more files in changeset.
Further invalid dependency declaration

* Prevent combining artifact and target configuration declaration

Fixes #10532

    • -7
    • +14
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -3
    • +23
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -3
    • +21
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 3 more files in changeset.
Further invalid dependency declaration

* Prevent combining artifact and target configuration declaration

Fixes #10532

    • -7
    • +14
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -3
    • +23
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -3
    • +21
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 3 more files in changeset.
Further invalid dependency declaration

* Prevent combining artifact and target configuration declaration

Fixes #10532

    • -7
    • +14
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -3
    • +23
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -3
    • +21
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 2 more files in changeset.
Add `inheritSubgraphConstraints()` API to dependencies

    • -1
    • +2
    ./dependencies/DefaultDependencyDescriptorFactoryTest.groovy
  1. … 61 more files in changeset.
Add `inheritSubgraphConstraints()` API to dependencies

    • -1
    • +2
    ./dependencies/DefaultDependencyDescriptorFactoryTest.groovy
  1. … 62 more files in changeset.
Add `inheritSubgraphConstraints()` API to dependencies

    • -1
    • +2
    ./dependencies/DefaultDependencyDescriptorFactoryTest.groovy
  1. … 63 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Add deprecation mechanism for configurations

    • -3
    • +3
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.
Support requested capabilities on external dependencies

This commit adds support for having requested capabilities

part of the module component selector, for external dependencies.

This means that if a component is using Gradle metadata, we can

read requested capabilities and honor them during selection.

This reworks where requested capabilities are stored, and in

particular moves them to the `ComponentSelector`, making them

properly part of the identity of a dependency. As such, two

dependencies requiring two different variants by using distinct

capabilities will now properly appear as two different dependencies

in the dependency graph, instead of two variants of the same

dependency.

    • -1
    • +1
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 63 more files in changeset.
Rename 'DependencyMetadata.isPending()` -> `isConstraint()`

    • -1
    • +1
    ./dependencies/DefaultDependencyDescriptorFactoryTest.groovy
  1. … 22 more files in changeset.
Enable locking for buildscript classpath

This is the shortest solution that works but still requires polishing.

* Make sure the configuration name cannot clash with a similar name in

the project

Issue #5845

    • -1
    • +4
    ./DefaultRootComponentMetadataBuilderTest.groovy
  1. … 4 more files in changeset.
Ensure root component metadata artifacts are resolved while project is mutable

This avoids concurrency issues where another project is resolving the configuration

while the project itself is also resolving it.

    • -1
    • +4
    ./DefaultRootComponentMetadataBuilderTest.groovy
  1. … 6 more files in changeset.
Normalize `ModuleIdentifier`

This commit reworks the `ComponentModuleIdentifier`/`ComponentModuleSelector`/`ModuleVersionSelector`

classes to use `ModuleIdentifier` under the hood, instead of storing denormalized strings. This has

the advantage that we can reduce the use of the module identifier factory, which is called very

often during dependency resolution. Sharing instances reduces the need for conversions, and makes

comparisons faster.

    • -1
    • +2
    ./DefaultLocalComponentMetadataBuilderTest.groovy
    • -4
    • +7
    ./DefaultRootComponentMetadataBuilderTest.groovy
  1. … 163 more files in changeset.
Checkstyle fix

The license header has one end-line semicolon that can't be removed

when converting Java -> Groovy...

    • -1
    • +1
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -1
    • +1
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -1
    • +1
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
JMock -> Spock

    • -0
    • +113
    ./dependencies/AbstractDependencyDescriptorFactoryInternalSpec.groovy
    • -130
    • +0
    ./dependencies/AbstractDependencyDescriptorFactoryInternalTest.java
    • -0
    • +71
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.groovy
    • -78
    • +0
    ./dependencies/ExternalModuleDependencyDescriptorFactoryTest.java
    • -31
    • +23
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
Add support for dependency attributes on project dependencies

There was an inconsistency with dependency attributes, that could be used to

select an external dependency, but not a project dependency. This commit aligns

what is possible for both.

    • -1
    • +2
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 15 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
    • +2
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 43 more files in changeset.
Dependency constraints ignore transitive dependencies

That means that a constraint only applies to the module it references,

it says nothing about transitive dependencies of that module.

This change in behaviour fixes invalidation of excludes and preserving

evicted modules.

Fixes #4609

Fixes #4610

    • -1
    • +1
    ./dependencies/DefaultDependencyDescriptorFactoryTest.groovy
  1. … 2 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.

    • -2
    • +6
    ./dependencies/ProjectDependencyDescriptorFactoryTest.groovy
  1. … 22 more files in changeset.
Avoid accessing `ResolutionStrategy` for non-root components

To determine if a configuration should have dependency locking enabled,

we inspect the ResolutionStrategy for that configuration. However, we

were needlessly inspecting this for configurations in referenced

projects, leading to added contention.

With this change, we only inspect the resolution strategy for

configurations when building the component metadata for the root

component, not for any referenced project components.

    • -2
    • +2
    ./DefaultLocalComponentMetadataBuilderTest.groovy
    • -1
    • +3
    ./DefaultRootComponentMetadataBuilderTest.groovy
  1. … 11 more files in changeset.
Add configurations to metadata serially

This will permit the added configuration to be later modified by the

caller, so that we can apply specific logic to configurations of the

root component.

    • -1
    • +2
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 4 more files in changeset.
Use ResolutionStrategy as entry point to active locking

Issue #3182

    • -2
    • +2
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 13 more files in changeset.
Replace `CapabilitiesExtension` with outgoing variants DSL

This commit replaces the need for a `CapabilitiesExtension` by adding the declaration

of variant capabilities on outgoing configuration variants. Instead of:

```

capabilities {

api 'org.test:foo:1.0'

}

```

one should now write:

```

configurations.api.outgoing {

capability 'org.test:foo:1.0'

}

```

    • -1
    • +1
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 24 more files in changeset.
Introduce `CapabilitiesExtension`

This commit adds a capabilities extension which can be applied to a project. If it's added, local

components gain the ability to declare capabilities. Currently, only the `java-library` plugin

supports capabilities, but it's expected that more plugins will add it (for example, the native

plugin), which explains why the extension lives in `core`.

When a project declares capabilities, they are bound to configurations. This lets us fail whenever

a local component capability conflicts with a transitive module capability. It will also let us

publish capabilities for local components in a subsequent commit.

    • -3
    • +4
    ./DefaultLocalComponentMetadataBuilderTest.groovy
  1. … 16 more files in changeset.