Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Handle serialization for shadowed capabilities in the GMM case (#11179)

This is now done in the same way as it is done in the


for cases without GMM

Follow up to: #11118

  1. … 4 more files in changeset.
There can be multiple enforced platform variants for Gradle metadata

Follow up to: #11118

  1. … 3 more files in changeset.
Increase cache layout version

  1. … 1 more file in changeset.
Add compatibility layer for SNAPSHOT metadata

Gradle 5.3 to 5.6 have an issue when publishing a Gradle Module Metadata

with a unique snapshot.

This commit enables Gradle 6+ to consume such metadata files without


Fixes #9462

  1. … 4 more files in changeset.
No more absolute path in metadata cache

Reference to file are now relative to the root of the module cache

instead of being absolute.

This allows moving the full module cache around to be reused with

a different root path.

The path are also normalized, so that they are portable across systems

where the name separator changes.

Issue #1338

  1. … 10 more files in changeset.
Revert "Revert "Merge branch 'release'""

This reverts commit 67b8bb8f18f854f45a2f5ec52cc9c8a25981e2f2.

This restores the merge attempt from earlier.

  1. … 66 more files in changeset.
Revert "Merge branch 'release'"

This reverts commit c7fdc455dcb9a8016af0ae9bc8b4c43fde1e2d06, reversing

changes made to 9f70d52b74dbc8c71381781b6c155474031b3cf8.

The changes need a wrapper as there are API changes. Reverting for now.

  1. … 66 more files in changeset.
Changes in Gradle Module Metadata loading

We no longer define any configurations, like default or the maven ones.

In the past, we still had these defined which allowed partial legacy

selection. But it made no sense since all these configurations would not

have any dependencies for example.

Fixes #10980

  1. … 16 more files in changeset.
Use "real" cache layout version

  1. … 1 more file in changeset.
Fix inconsistent dependency graph state

This commit fixes a problem with _unattached dependencies_ being

incorrectly removed from the dependency graph whenever only the

target of an edge is changed.

This was causing the Gradleception build to fail with strict

dependencies as "forSubgraph", but the problem was already

present (and left unnoticed).

  1. … 5 more files in changeset.
Increase cache layout version

Required for serialization changes in #10368

  1. … 1 more file in changeset.
Support dependency artifact selectors in Gradle Module Metadata

This is a compatibility feature for combining GMM and pure pom/ivy


  1. … 13 more files in changeset.
Increment metadata cache layout version

  1. … 1 more file in changeset.
Add `forSubgraph()` API to version constraints

  1. … 20 more files in changeset.
Further deduplication of serialized metadata

Maven dependency metadata de-duplication now happens as well when

serializing untransformed metadata.

Fixes #8311

  1. … 7 more files in changeset.
Use real cache version

(the previous one was to avoid CI conflicts)

  1. … 1 more file 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


  1. … 63 more files in changeset.
Move transformer execution history to version specific cache

  1. … 12 more files in changeset.
Use the execution history for artifact transformations

  1. … 11 more files in changeset.
Fix "platform owners" not being serialized

  1. … 5 more files in changeset.
Fix realization of derived variants

This commit changes the way derived variants are handled during serialization.

Before, we used to record only the fact that there were derived variants, and

the realized component metadata class was reproducing what the `getDerivedVariants`

method was doing in the original metadata. Unfortunately, this led to forgetting

about this fact, because in most cases we don't realize all variants eagerly, and

test coverage was missing.

Instead, now, the realized component metadata makes use of the original derived

variants and _serializes_ them. This is only done for Maven metadata now, as this

is the only component type which actually produced derived variants.

This commit also introduces a new test suite called `ForceRealizeTest` which runs

the full integration test suite, but forcing the realization of all variants. This

can be executed typically by running `myProject:integForceRealizeTest`. This test

suite runs in embedded mode by default, in order to be fast.

  1. … 12 more files in changeset.
Bump cache layout version

It is unclear whether this version should have been upgraded before or with this PR,

but this makes the results from cache correct again.

  1. … 1 more file in changeset.
Bump cache version for module metadata

  1. … 1 more file in changeset.
Bump cache layout version for changes to `VersionConstraint`

  1. … 1 more file in changeset.
Remove `repositoryName` from `ModuleSource` API

- Using `ModuleSource` to transport the repository name is a bit of a

mis-use of this type, which was intended to be an opaque memento of

resolution state. (Despite the name indicating otherwise).

- This commit removes `repositoryName` from the API:

This is now only available on the `RepositoryChainModuleSource`,

which attaches a repository identifier to the resolved component result

(in order that it can later look for artifacts in the same repository only).

  1. … 8 more files in changeset.
Add support for emitting information about repositories used during configuration resolution process, and sourced repository for a component (#5959)

- `ResolveConfigurationDependenciesBuildOperationType.Details` now contains a `List<Repository>` eventually provided by all `ResolutionAwareRepository` implementations

- `ResolvedComponentResult` has been subclassed to `ResolvedComponentResultInternal`, to provide the `repositoryName` used as source. This can be `null` in case of project dependency.

- Note that even when artifacts are resolved from the cache, they still convey the original repository that was used as source. The `name` of a repository is guaranteed to be unique inside a given repository container, and we use a single repository container to resolve a given configuration. Hence, the name can be safely used to uniquely identify which repository was used to source components.

- This commit also moves custom serialization logic to the owning type of `SerializedOperation` implementations to their owning types

  1. … 52 more files in changeset.
Handle multi-component cache versions

- Let `UnusedVersionsCacheCleanup` handle cache versions with multiple

components, e.g. metadata-2.58.

- Introduce `CacheVersion` to handle formatting and parsing in one


  1. … 12 more files in changeset.
Serialization of realised ModuleComponentResolveMetadata

This enables proper caching by making sure we can save and reload cache


Fixes #5653

  1. … 14 more files in changeset.
Introduce CacheVersionMapping

Instead of just having a constant for the latest, currently used cache

version, we need to keep track of which cache version is used by which

Gradle version. This way, we can determine which shared cache

directories are safe to delete because there is no Gradle version that

uses it anymore.

Issue: #5807

  1. … 5 more files in changeset.
Support POM exclusions with implicit wildcard

A POM exclusion can specify only the groupId or the artifactId, implying

that the other one is set as "*".

Bump metadata cache version as we now parse more excludes than before.

Fixes #5092

  1. … 4 more files in changeset.