Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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.
Changes in Gradle Module Metadata generation

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.

  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.
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.
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.
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.
Bump metadata format

There was a conflict due to 2 different PRs bumping to the save

version at the same time.

  1. … 1 more file in changeset.
Rework `forSubgraph` as implied by `strictly`

This commit removes a dedicated `forSubgraph` flag

on version constraints, so that it is _implied_ by

strict version constraints. This simplifies the behavior

of `strictly`, making it closer to the intuitive semantics,

while maintaining the ability to fail the build if a

consumer brings an incompatible version in the graph.

As a consequence, _strict dependencies_ now express that

the producer preference overrides whatever is found in

its own dependency graph. It is closer to the "nearest

first" semantics of Maven, while not having its drawbacks

(ordering in particular).

  1. … 79 more files in changeset.
Support dependency artifact in GMM

This is a compatibility layer for seamless migration to GMM.

  1. … 13 more files in changeset.
Support dependency artifact in GMM

This is a compatibility layer for seamless migration to GMM.

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

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

modules.

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

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

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

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

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

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

  1. … 19 more files in changeset.
Add `strong()` API to version constraints

  1. … 16 more files in changeset.
Spike: requireTransitive()

  1. … 16 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.
Introduce ecosystem registration

This commit introduces the concept of "ecosystem", that can be

registered on an attributes schema. When a component is published,

it may provide a list of ecosystems. This list is used by consumers

when resolving. If, for some reason, variant resolution fails, and

that the consumer didn't use a plugin which provides the expected

ecosystem, the error message will indicate that they probably

miss a plugin that understands that ecosystem.

This is useful when a plugin extends an existing ecosystem with

additional attributes, that consumers may not be aware of. In

this case it is expected that the plugin declares an ecosystem.

Currently the error message will only indicate what ecosystem

is missing, and an optional description. It will not tell _how_

such plugin can be found, nor what plugins provide it.

By default, for adhoc components, publishing will use the

ecosystems of the producer. For example, for a Java project,

the published Gradle metadata file will include the java

ecosystem requirement.

For components which are not adhoc, they must implement the

`ComponentWithEcosystems` interface in order to tell which

ecosystems are in use.

  1. … 54 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

dependency.

  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.