Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Force AbstractTestDirectoryProvider to use Class (#12431)

Closes https://github.com/gradle/gradle-private/issues/2988

This PR adds `className` to `AbstractTestDirectoryProvider` so there'll be no more `unknown-test-class`.

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 407 more files in changeset.
Fix more construtors

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 3 more files in changeset.
Introduce constraint inheritance API

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 40 more files in changeset.
Introduce constraint inheritance API

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 40 more files in changeset.
Introduce constraint inheritance API

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 40 more files in changeset.
Introduce constraint inheritance API

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

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

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

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

    • -2
    • +2
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 63 more files in changeset.
Initial support for optional features

This commit introduces initial support for optional features, by

implementing a way for a dependency declaration (currently *only* in

the DSL) to request variants of the target component that provide one

or more capabilities.

Previously to this change, selection was (simplified) done like this:

1. find the target component

2. select the variant of the target component which matches the requested

attributes

Now, selection introduces another step:

1. find the target component

2. filter variants by eliminating those which do not provide the requested

capabilities

3. select the variant in this list which matches the requested attributes

Several changes had to be implemented:

First, component metadata rules calling `addCapability` will now return

a component which capabilities _include_ the default capability.

Second, attribute filtering is done in a secondary step, which means that

if there are no variant matching the requested capabilities, we will immediately

fail.

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 58 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.

    • -4
    • +5
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 164 more files in changeset.
Honor constraint attribute during selection

This commit makes sure that attributes from all selectors are used during

selection, including the attributes from constraints. It does not, however,

make sure that those attributes are consistent (compatible).

    • -1
    • +2
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 13 more files in changeset.
Add reason to `DependencyMetadata`

This allows propagating reasons from `Dependency` to `DependencyMetadata`, which in turn can be used

as `ComponentSelectionReason` descriptions. Doing this lets us display the description in the dependency

insight report.

This commit, however, does **not** add support for serializing reasons, or publishing them. This means

that this only works for direct dependencies so far.

Signed-off-by: Cedric Champeau <cedric@gradle.com>

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 26 more files in changeset.
Split BuildableLocalConfigurationMetadata from BuildableLocalComponentMetadata

    • -5
    • +6
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 11 more files in changeset.
Detangle Ivy publish from LocalComponentMetadata

The same `ConfigurationComponentMetadataBuilder` was being used for Ivy

publishing and generated a `LocalComponentMetadata` for use when

resolving. This change starts the process of decoupling these 2 things,

allowing them to be refactored appropriately.

    • -1
    • +1
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 4 more files in changeset.
Tidy up legacy publishing types

- Merged `org.gradle.api.internal.artifacts.ivyservice.publisher`

into `org.gradle.internal.components.external.ivypublish`

- Inlined `IvyDependencyPublisher`

- Added clarifying comments

    • -0
    • +83
    ./DefaultIvyModuleDescriptorWriterTest.groovy
  1. … 21 more files in changeset.