ModuleComponentSelectorSerializerTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 77 more files 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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 79 more files 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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 77 more files 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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 77 more files 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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 77 more files 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).

    • -12
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 77 more files in changeset.
Add `forSubgraph()` API to version constraints

    • -8
    • +12
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 19 more files in changeset.
Add `forSubgraph()` API to version constraints

    • -8
    • +12
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 19 more files in changeset.
Add `forSubgraph()` API to version constraints

    • -8
    • +12
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 20 more files in changeset.
Add `forSubgraph()` API to version constraints

    • -8
    • +12
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 20 more files in changeset.
Add `forSubgraph()` API to version constraints

    • -8
    • +12
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 19 more files in changeset.
Replace most usages of `NamedObjectInstantiator.INSTANCE` with injection of a global service instead. This allows the instantiator to be contextualized, for example to handle caching of the generated types.

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 25 more files in changeset.
Replace most usages of `NamedObjectInstantiator.INSTANCE` with injection of a global service instead. This allows the instantiator to be contextualized, for example to handle caching of the generated types.

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 27 more files in changeset.
Replace most usages of `NamedObjectInstantiator.INSTANCE` with injection of a global service instead. This allows the instantiator to be contextualized, for example to handle caching of the generated types.

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 27 more files in changeset.
Replace most usages of `NamedObjectInstantiator.INSTANCE` with injection of a global service instead. This allows the instantiator to be contextualized, for example to handle caching of the generated types.

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 27 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
    • +8
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 63 more files in changeset.
Split off value snapshotting and attributes related methods of TestUtil

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 64 more files in changeset.
Simplify construction of DefaultMutableVersionConstraint

    • -6
    • +18
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 6 more files in changeset.
Improved name and documentation of attribute container serializer

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

    • -2
    • +5
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 164 more files in changeset.
Add a non lossy AttributeContainer serializer

This will be required for supporting the serialization of a fully

realised ModuleComponentResolveMetadata.

Issue #5653

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 8 more files in changeset.
Add a non lossy AttributeContainer serializer

This will be required for supporting the serialization of a fully

realised ModuleComponentResolveMetadata.

Issue #5653

    • -2
    • +2
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 8 more files in changeset.
Serialize dependency attributes metadata

Now that module metadata may contain dependencies with attributes, we need to serialize them too.

This commit updates the component selector serializer, as well as the module metadata serializer,

to use this information, effectively bumping the cache metadata layout format version.

    • -3
    • +7
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 18 more files in changeset.
Delegate serialization of ModuleComponentSelector

    • -0
    • +43
    ./ModuleComponentSelectorSerializerTest.groovy
  1. … 4 more files in changeset.