Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Replace LinkedLists with ArrayLists where possible

  1. … 68 more files in changeset.
Add support for "classifier" dependency substitution

This commit adds a DSL to make substitutions of dependencies which use

classifiers (or in general _artifact notations_) easier. In particular,

it avoids the use of component metadata rules, which, while being the

_right_ solution, are a bit cumbersome and need to be implemented in

a plugin.

    • -1
    • +35
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +5
    ./external/model/ForcedDependencyMetadataWrapper.java
    • -0
    • +7
    ./external/model/GradleDependencyMetadata.java
    • -0
    • +5
    ./external/model/ModuleDependencyMetadataWrapper.java
    • -0
    • +8
    ./local/model/DefaultProjectDependencyMetadata.java
    • -1
    • +15
    ./local/model/DslOriginDependencyMetadataWrapper.java
    • -0
    • +12
    ./model/LocalComponentDependencyMetadata.java
    • -0
    • +4
    ./model/LocalOriginDependencyMetadata.java
  1. … 27 more files in changeset.
Add support for "classifier" dependency substitution

This commit adds a DSL to make substitutions of dependencies which use

classifiers (or in general _artifact notations_) easier. In particular,

it avoids the use of component metadata rules, which, while being the

_right_ solution, are a bit cumbersome and need to be implemented in

a plugin.

    • -1
    • +35
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +5
    ./external/model/ForcedDependencyMetadataWrapper.java
    • -0
    • +7
    ./external/model/GradleDependencyMetadata.java
    • -0
    • +5
    ./external/model/ModuleDependencyMetadataWrapper.java
    • -0
    • +8
    ./local/model/DefaultProjectDependencyMetadata.java
    • -1
    • +15
    ./local/model/DslOriginDependencyMetadataWrapper.java
    • -0
    • +12
    ./model/LocalComponentDependencyMetadata.java
    • -0
    • +4
    ./model/LocalOriginDependencyMetadata.java
  1. … 27 more files in changeset.
Add support for "classifier" dependency substitution

This commit adds a DSL to make substitutions of dependencies which use

classifiers (or in general _artifact notations_) easier. In particular,

it avoids the use of component metadata rules, which, while being the

_right_ solution, are a bit cumbersome and need to be implemented in

a plugin.

    • -1
    • +35
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +5
    ./external/model/ForcedDependencyMetadataWrapper.java
    • -0
    • +7
    ./external/model/GradleDependencyMetadata.java
    • -0
    • +5
    ./external/model/ModuleDependencyMetadataWrapper.java
    • -0
    • +8
    ./local/model/DefaultProjectDependencyMetadata.java
    • -1
    • +15
    ./local/model/DslOriginDependencyMetadataWrapper.java
    • -0
    • +12
    ./model/LocalComponentDependencyMetadata.java
    • -0
    • +4
    ./model/LocalOriginDependencyMetadata.java
  1. … 26 more files in changeset.
Add support for "classifier" dependency substitution

This commit adds a DSL to make substitutions of dependencies which use

classifiers (or in general _artifact notations_) easier. In particular,

it avoids the use of component metadata rules, which, while being the

_right_ solution, are a bit cumbersome and need to be implemented in

a plugin.

    • -1
    • +35
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +5
    ./external/model/ForcedDependencyMetadataWrapper.java
    • -0
    • +7
    ./external/model/GradleDependencyMetadata.java
    • -0
    • +5
    ./external/model/ModuleDependencyMetadataWrapper.java
    • -0
    • +8
    ./local/model/DefaultProjectDependencyMetadata.java
    • -1
    • +15
    ./local/model/DslOriginDependencyMetadataWrapper.java
    • -0
    • +12
    ./model/LocalComponentDependencyMetadata.java
    • -0
    • +4
    ./model/LocalOriginDependencyMetadata.java
  1. … 26 more files in changeset.
Add support for "classifier" dependency substitution

This commit adds a DSL to make substitutions of dependencies which use

classifiers (or in general _artifact notations_) easier. In particular,

it avoids the use of component metadata rules, which, while being the

_right_ solution, are a bit cumbersome and need to be implemented in

a plugin.

    • -1
    • +35
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +5
    ./external/model/ForcedDependencyMetadataWrapper.java
    • -0
    • +7
    ./external/model/GradleDependencyMetadata.java
    • -0
    • +5
    ./external/model/ModuleDependencyMetadataWrapper.java
    • -0
    • +8
    ./local/model/DefaultProjectDependencyMetadata.java
    • -1
    • +15
    ./local/model/DslOriginDependencyMetadataWrapper.java
    • -0
    • +12
    ./model/LocalComponentDependencyMetadata.java
    • -0
    • +4
    ./model/LocalOriginDependencyMetadata.java
  1. … 27 more files in changeset.
Fix metadata realization

The "dependency filter" in module metadata is a performance optimization,

which allows filtering out some particular kinds of dependencies _without

having to duplicate the collection_ which is particularly expensive.

However, when we call the builder to mutate metadata, we shouldn't use

the current value of the builder as the initial value, because it causes

the mutated state to be in a wrong state.

This fixes a failing test in "force realize" case.

    • -1
    • +1
    ./external/model/DefaultConfigurationMetadata.java
  1. … 1 more file in changeset.
Fix metadata realization

The "dependency filter" in module metadata is a performance optimization,

which allows filtering out some particular kinds of dependencies _without

having to duplicate the collection_ which is particularly expensive.

However, when we call the builder to mutate metadata, we shouldn't use

the current value of the builder as the initial value, because it causes

the mutated state to be in a wrong state.

This fixes a failing test in "force realize" case.

    • -1
    • +1
    ./external/model/DefaultConfigurationMetadata.java
  1. … 1 more file in changeset.
Consider the derivation strategy when requesting component metadata

Gradle has a single, build scoped cache for dependency metadata. It's

using a build cache scope because component metadata is quite expensive

to read and process. However, component metadata _may_ be different

based on the plugins applied on a project. For example, Java projects

apply what we call a "Java derivation strategy", which is capable

of transforming regular POM files into so-called "platforms" but

more importantly, they are what map the different Maven scopes to

actual "variants" in variant-aware dependency management.

The problem is that it's not a requirement that all projects are

Java projects. It is possible to have native subprojects, or projects

which do _not_ apply the Java base plugin. While it's in general an

error to have a project which wants to perform "Java dependency

resolution" not to apply the Java derivation strategy, there are

consequences in not doing so. In particular, Gradle becomes order

dependent: if a subproject which does not apply the derivation

strategy resolves a module first, then subsequent resolutions for

projects which _do_ apply the derivation strategy would get wrong

metadata.

To avoid this, this commit makes sure that when we consume module

metadata, we actually use the derivation strategy as part of the

processed metadata cache key.

This does _not_ fix the fact that the consumers _should have_ applied

the derivation strategy and will make realizing this harder, but it

_does_ fix the inconsistency in resolution, which is probably a

much bigger issue (for caching and reproducibility).

    • -0
    • +37
    ./external/model/AbstractStatelessDerivationStrategy.java
    • -1
    • +10
    ./external/model/JavaEcosystemVariantDerivationStrategy.java
    • -1
    • +9
    ./external/model/NoOpDerivationStrategy.java
    • -0
    • +4
    ./external/model/VariantDerivationStrategy.java
    • -1
    • +1
    ./external/model/VariantMetadataRules.java
  1. … 8 more files in changeset.
Consider the derivation strategy when requesting component metadata

Gradle has a single, build scoped cache for dependency metadata. It's

using a build cache scope because component metadata is quite expensive

to read and process. However, component metadata _may_ be different

based on the plugins applied on a project. For example, Java projects

apply what we call a "Java derivation strategy", which is capable

of transforming regular POM files into so-called "platforms" but

more importantly, they are what map the different Maven scopes to

actual "variants" in variant-aware dependency management.

The problem is that it's not a requirement that all projects are

Java projects. It is possible to have native subprojects, or projects

which do _not_ apply the Java base plugin. While it's in general an

error to have a project which wants to perform "Java dependency

resolution" not to apply the Java derivation strategy, there are

consequences in not doing so. In particular, Gradle becomes order

dependent: if a subproject which does not apply the derivation

strategy resolves a module first, then subsequent resolutions for

projects which _do_ apply the derivation strategy would get wrong

metadata.

To avoid this, this commit makes sure that when we consume module

metadata, we actually use the derivation strategy as part of the

processed metadata cache key.

This does _not_ fix the fact that the consumers _should have_ applied

the derivation strategy and will make realizing this harder, but it

_does_ fix the inconsistency in resolution, which is probably a

much bigger issue (for caching and reproducibility).

    • -0
    • +37
    ./external/model/AbstractStatelessDerivationStrategy.java
    • -1
    • +10
    ./external/model/JavaEcosystemVariantDerivationStrategy.java
    • -1
    • +9
    ./external/model/NoOpDerivationStrategy.java
    • -0
    • +4
    ./external/model/VariantDerivationStrategy.java
    • -1
    • +1
    ./external/model/VariantMetadataRules.java
  1. … 8 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
Clean up warnings

This includes cleaning up compilation warnings and other warnings from

IDE inspection.

One large area of changes was around having proper @Nullable /

@NonNullApi to clarify nullability.

    • -5
    • +3
    ./AmbiguousConfigurationSelectionException.java
    • -1
    • +1
    ./NoMatchingConfigurationSelectionException.java
    • -2
    • +3
    ./external/descriptor/DefaultExclude.java
    • -4
    • +1
    ./external/ivypublish/DefaultIvyModuleDescriptorWriter.java
    • -0
    • +2
    ./external/ivypublish/package-info.java
    • -1
    • +1
    ./external/model/AbstractConfigurationMetadata.java
    • -1
    • +1
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -1
    • +1
    ./external/model/AbstractMutableModuleComponentResolveMetadata.java
    • -2
    • +2
    ./external/model/AbstractRealisedModuleComponentResolveMetadata.java
    • -3
    • +5
    ./external/model/AbstractRealisedModuleResolveMetadataSerializationHelper.java
    • -1
    • +1
    ./external/model/AbstractVariantBackedConfigurationMetadata.java
    • -3
    • +3
    ./external/model/DefaultConfigurationMetadata.java
  1. … 314 more files in changeset.
WIP

    • -0
    • +10
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +6
    ./external/model/DefaultConfigurationMetadata.java
    • -2
    • +11
    ./external/model/maven/RealisedMavenModuleResolveMetadata.java
WIP

    • -0
    • +13
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -1
    • +9
    ./external/model/DefaultConfigurationMetadata.java
    • -1
    • +2
    ./external/model/RealisedConfigurationMetadata.java
    • -0
    • +43
    ./model/ConfigurationMetadataHelper.java
WIP

    • -0
    • +10
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +6
    ./external/model/DefaultConfigurationMetadata.java
    • -1
    • +18
    ./external/model/RealisedConfigurationMetadata.java
WIP

    • -0
    • +13
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -1
    • +9
    ./external/model/DefaultConfigurationMetadata.java
    • -1
    • +2
    ./external/model/RealisedConfigurationMetadata.java
    • -0
    • +43
    ./model/ConfigurationMetadataHelper.java
WIP

    • -0
    • +10
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +6
    ./external/model/DefaultConfigurationMetadata.java
    • -1
    • +17
    ./external/model/RealisedConfigurationMetadata.java
WIP

    • -0
    • +10
    ./external/model/ConfigurationBoundExternalDependencyMetadata.java
    • -0
    • +6
    ./external/model/DefaultConfigurationMetadata.java
    • -1
    • +18
    ./external/model/RealisedConfigurationMetadata.java
Add release notes and fix review items

    • -6
    • +1
    ./model/AttributeMatchingExplanationBuilder.java
  1. … 4 more files in changeset.
Add release notes and fix review items

    • -6
    • +1
    ./model/AttributeMatchingExplanationBuilder.java
  1. … 4 more files in changeset.
Fix handling of configuration level excludes

For realised Ivy metadata, excludes at the level of configurations added

by rules need to be explicitly serialized as we cannot rely on the

usual derivation from the base Ivy metadata since the mapping between

the added configuration and the base one is lost.

The test has also been adapted to show that one derived variant excludes

while another does not.

    • -18
    • +21
    ./external/model/ivy/RealisedIvyModuleResolveMetadataSerializationHelper.java
  1. … 3 more files in changeset.
LazyRuleAwareWithBaseConfigurationMetadata: use proper config name for hierarchy

Signed-off-by: Roberto Perez Alcolea <rperezalcolea@netflix.com>

    • -1
    • +1
    ./external/model/LazyRuleAwareWithBaseConfigurationMetadata.java
AbstractLazyModuleComponentResolveMetadata: remove constructVariantHierarchy

Signed-off-by: Roberto Perez Alcolea <rperezalcolea@netflix.com>

    • -10
    • +0
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
RealisedIvyModuleResolveMetadataSerializationHelper: do not create hierarchy and use excludes from parent configurations

Signed-off-by: Roberto Perez Alcolea <rperezalcolea@netflix.com>

    • -6
    • +11
    ./external/model/ivy/RealisedIvyModuleResolveMetadataSerializationHelper.java
Ivy support conf based excludes for additional variants: react to code review

Signed-off-by: Roberto Perez Alcolea <rperezalcolea@netflix.com>

    • -3
    • +3
    ./external/model/AbstractLazyModuleComponentResolveMetadata.java
    • -4
    • +2
    ./external/model/LazyRuleAwareWithBaseConfigurationMetadata.java
    • -33
    • +31
    ./external/model/ivy/RealisedIvyModuleResolveMetadata.java
  1. … 8 more files in changeset.
Align the ambiguous selection error messages with no matching case

This commit polishes improved error messages in variant selection by

making the "ambiguous" case closer to what we have for the "no matching"

case.

    • -14
    • +10
    ./AmbiguousConfigurationSelectionException.java
  1. … 18 more files in changeset.