IvyDynamicRevisionRemoteResolveIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Adjust test fixtures and test to ivy behavior changes

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 38 more files in changeset.
Fixes

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 8 more files in changeset.
Fixes

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 29 more files in changeset.
Fixes

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 19 more files in changeset.
Fixes

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 31 more files in changeset.
Align implementations of artifact identifier display names

DefaultModuleComponentArtifactIdentifier now behaves similar as

ComponentFileArtifactIdentifier (showing the full actual file name).

This means that the artifact name used during reporting now

contains the version at the usual position in the file name.

This way it shows the actual file name for artifacts originating

from pom-only maven repositories (except snapshots, which show the

SNAPSHOT placeholder) and ivy repositories with default pattern.

The motivation for this alignment is to get the same representation for

the same file, independent of whether it was sourced from traditional

or Gradle module metadata.

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 32 more files in changeset.
Align implementations of artifact identifier display names

DefaultModuleComponentArtifactIdentifier now behaves similar as

ComponentFileArtifactIdentifier (showing the full actual file name).

This means that the artifact name used during reporting now

contains the version at the usual position in the file name.

This way it shows the actual file name for artifacts originating

from pom-only maven repositories (except snapshots, which show the

SNAPSHOT placeholder) and ivy repositories with default pattern.

The motivation for this alignment is to get the same representation for

the same file, independent of whether it was sourced from traditional

or Gradle module metadata.

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 32 more files in changeset.
Adjust tests and samples to new metadata sources defaults

    • -3
    • +7
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 95 more files in changeset.
wip - fix more tests

    • -3
    • +7
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 46 more files in changeset.
wip - fix more tests

    • -3
    • +7
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 45 more files in changeset.
wip - fix more tests

    • -3
    • +7
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 46 more files in changeset.
Let dependency-management tests not use deprecated configurations

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 27 more files in changeset.
Let dependency-management tests not use deprecated configurations

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 27 more files in changeset.
Let dependency-management tests not use deprecated configurations

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 27 more files in changeset.
Let dependency-management tests not use deprecated configurations

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 27 more files in changeset.
Order selectors on the fly

Sorting can be expensive, especially when the list is almost always sorted.

This commit changes the implementation to use on the fly sorting, as we

add selectors.

    • -3
    • +3
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 1 more file in changeset.
Order selectors on the fly

Sorting can be expensive, especially when the list is almost always sorted.

This commit changes the implementation to use on the fly sorting, as we

add selectors.

    • -3
    • +3
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 1 more file in changeset.
Tweak the output produced by `TreeFormatter`.

    • -3
    • +6
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 36 more files in changeset.
Implement variant derivation strategy

This commit changes how Maven metadata is derived into variants. Now we will

only derive variants if the Java plugin is applied (the "base Java" plugin).

This is implemented via a variant derivation strategy, and allows fixing

the problem that a native component is unlikely to find sense in the derivation

of Java variants. This fixes a bug where the native plugins wouldn't be able

to consume native libraries published on Maven repositories, without Gradle

metadata.

    • -0
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 43 more files in changeset.
Deprecate extra parameters in ComponentSelectionRules

Since methods have been added on ComponentSelection, the logic for

detecting extra parameters in provided closures is now deprecated.

Fixes #6607

    • -1
    • +5
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 12 more files in changeset.
Enable improved POM support by default

This commit makes the experimental flag `IMPROVED_POM_SUPPORT` the default.

The flag is still there for backwards compatibility but has effectively no

impact. As a consequence, the behavior of improved POM support is now the

default, which implies that:

- Maven dependencies packaged as `pom` or `jar` now have derived variants

(`compile` and `runtime`) and we properly choose between the variants based

on the consumer attributes

- platform dependencies using the `platform` and `enforcedPlatform` keywords

are enabled

Enabling improved POM support by default is a **breaking change**: there's

a risk that resolved dependencies is different, in particular because we

will now only include the `compile` dependencies of a POM file whenever the

consumer asks for the API variant. There are also some changes in the

dependency insight reports due to the use of attribute based matching instead

of configuration selection.

Last but not least, this commit is likely to introduce a small performance

regression due to attribute based selection.

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 50 more files in changeset.
Consistently report conflict resolution

This commit refactors how conflict resolution selection reasons are handled, in order to:

- collect the list of versions which participated in conflict resolution

- report a single conflict resolution cause when conflicts are resolved several times for the same module

- consistently report module replacement rules as rules, not conflict resolution. Before this change,

a module replacement was reported as both a conflict and a rule

    • -5
    • +5
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 29 more files in changeset.
Avoid sorting versions when serializing results

We can avoid sorting versions by making sure we use an order-preserving

multimap. Sorting is quite expensive, especially because it's done during

serialization of the result.

    • -1
    • +1
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 1 more file in changeset.
Collect unmatched dependencies too

Without this change, it is not possible to know which versions Gradle

considered for a dynamic range, unless it's rejected by a rule or by

attribute matching.

    • -16
    • +21
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 19 more files in changeset.
Collect unmatched dependencies too

Without this change, it is not possible to know which versions Gradle

considered for a dynamic range, unless it's rejected by a rule or by

attribute matching.

    • -16
    • +21
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 19 more files in changeset.
Improve error reporting in case no matching dynamic version is found

This commit improves rendering of errors in case resolution fails because

all versions in a dynamic range are evicted, and that at least one of the

evicted versions was evicted because of attribute matching. The error will

now report the attributes on each tested version, as well as the requested

attributes.

For this, the module not found exception has been updated to carry more

context, and now makes use of the tree formatter for consistency with other

exceptions in the codebase.

    • -24
    • +21
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 37 more files in changeset.
Make caching of missing group:name permanent

This aligns the behavior with caching of missing group:name:version.

Added a number of integration tests to further document caching

behavior.

Fixes #4436

    • -9
    • +13
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 3 more files in changeset.
Simple fix for cache-expiry by removing in-memory cache

This fix demonstrates that the incorrect dynamic version behaviour

of gradle#3019 is due to the in-memory cache of module version lists.

A more complete fix will involve moving the in-memory caching to live

with the other filesystem caching, allowing the cache expiry policy

to be correctly honoured.

    • -5
    • +2
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 3 more files in changeset.
Add tests demonstrating gradle#3019

These tests demonstrate that Gradle only considers the cache expiry

policy for the first configuration that resolves a particular

dynamic version or snapshot module. This is particularly problematic

since detached configurations never get any cache expiry configured

via `configurations.all`.

As such, if a detached configuration is the first to resolve a dynamic

version or snapshot during a build invocation, it may cause the user-

configured cache expiry to be ignored. Several popular plugins,

including the Spring dependency management plugin, add detached

configurations that will be resolved early in a build invocation.

    • -0
    • +54
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 1 more file in changeset.
Gradle should fail resolution from subsequent repositories on critical errors (#3412)

    • -6
    • +9
    ./IvyDynamicRevisionRemoteResolveIntegrationTest.groovy
  1. … 15 more files in changeset.