PublishedDependencyConstraintsIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix binary store exception due to invalid constraint edge

It was possible to have a constraint remain in the graph without a

matching hard dependency.

When that happens, the constraint edge ends up pointing to a node that

is not selected and thus causes an exception when the binary store is

read from disk.

Fixes #12900

    • -0
    • +80
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 1 more file in changeset.
WIP

    • -0
    • +107
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 1 more file in changeset.
Fix binary store exception due to invalid constraint edge

It was possible to have a constraint remain in the graph without a

matching hard dependency.

When that happens, the constraint edge ends up pointing to a node that

is not selected and thus causes an exception when the binary store is

read from disk.

Fixes #12900

    • -0
    • +80
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 1 more file in changeset.
Add @ToBeFixedForInstantExecution to PublishedDependencyConstraintsIntegrationTest

because of the GenerateGraphTask in ResolveTestFixture that has a Configuration field

Signed-off-by: Paul Merlin <paul@gradle.com>

    • -0
    • +9
    ./PublishedDependencyConstraintsIntegrationTest.groovy
@RequiredFeature can be used as a repeated annotation

If used for a single feature, avoid annotation noise by not using the

composite annotation. This also avoids the confusion that the

@RequiredFeature annotation cannot be used independently

(no compile error but does not work).

I made the @RequiredFeatures annotation package-private as it is

only required by the compiler and the runner now.

Signed-off-by: Benjamin Muskalla <bmuskalla@gradle.com>

    • -7
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 43 more files in changeset.
@RequiredFeature can be used as a repeated annotation

If used for a single feature, avoid annotation noise by not using the

composite annotation. This also avoids the confusion that the

@RequiredFeature annotation cannot be used independently

(no compile error but does not work).

I made the @RequiredFeatures annotation package-private as it is

only required by the compiler and the runner now.

Signed-off-by: Benjamin Muskalla <bmuskalla@gradle.com>

    • -7
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 43 more files in changeset.
Adjust test fixtures and test to ivy behavior changes

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 38 more files in changeset.
Remove special casing of pure ivy in resolve tests

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 9 more files in changeset.
Remove special casing of pure ivy in resolve tests

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 11 more files in changeset.
Use ivy derivation rules in resolve tests

This allows us to get rid of some special casing in tests that

do not specifically test ivy-only behavior. This tests that common

variant aware dependency management scenarios work for ivy if used

in the recommended way.

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 12 more files in changeset.
Use ivy derivation rules in resolve tests

This allows us to get rid of some special casing in tests that

do not specifically test ivy-only behavior. This tests that common

variant aware dependency management scenarios work for ivy if used

in the recommended way.

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 12 more files in changeset.
Allow variant matching opt-in for ivy through component metadata rules

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 15 more files in changeset.
Allow variant matching opt-in for ivy through component metadata rules

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 18 more files in changeset.
Allow variant matching opt-in for ivy through component metadata rules

    • -2
    • +1
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 20 more files in changeset.
Allow variant matching opt-in for ivy through component metadata rules

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

    • -6
    • +6
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 95 more files in changeset.
wip - fix more tests

    • -4
    • +4
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 46 more files in changeset.
wip - fix more tests

    • -4
    • +4
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 14 more files in changeset.
wip - fix more tests

    • -4
    • +4
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 45 more files in changeset.
wip - fix more tests

    • -4
    • +4
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 46 more files in changeset.
Remove 'experimental' variant from dependency resolution tests

With the 'GRADLE_METADATA' feature preview gone, we now only have

two dimensions of variation to test:

(1) Ivy or Maven repository?

(2) Gradle metadata available - in addition to pom or ivy - or not?

If Gradle 6+ was used for publishing, Gradle metadata is most likely

available and the pom/ivy file contains the corresponding marker.

If an older Gradle version (or Maven/Ivy) was used for publishing,

Gradle metadata is not available and there is also no marker in the

other metadata file.

    • -2
    • +2
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 32 more files in changeset.
Remove 'experimental' variant from dependency resolution tests

With the 'GRADLE_METADATA' feature preview gone, we now only have

two dimensions of variation to test:

(1) Ivy or Maven repository?

(2) Gradle metadata available - in addition to pom or ivy - or not?

If Gradle 6+ was used for publishing, Gradle metadata is most likely

available and the pom/ivy file contains the corresponding marker.

If an older Gradle version (or Maven/Ivy) was used for publishing,

Gradle metadata is not available and there is also no marker in the

other metadata file.

    • -2
    • +2
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 32 more files in changeset.
Remove 'experimental' variant from dependency resolution tests

With the 'GRADLE_METADATA' feature preview gone, we now only have

two dimensions of variation to test:

(1) Ivy or Maven repository?

(2) Gradle metadata available - in addition to pom or ivy - or not?

If Gradle 6+ was used for publishing, Gradle metadata is most likely

available and the pom/ivy file contains the corresponding marker.

If an older Gradle version (or Maven/Ivy) was used for publishing,

Gradle metadata is not available and there is also no marker in the

other metadata file.

    • -2
    • +2
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 32 more files in changeset.
Sort module selectors

This commit reworks module selectors so that they are sorted

in an order which reduces the cost of module selection. We

make sure to put local (project) selectors first, then we

use selectors from locks (if any).

The next selectors are "latest" version selectors because

even if they are dynamic, they are likely to "win" selection.

Then, exact version selectors are sorted by version descending

, and last we add dynamic version selectors.

    • -3
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 19 more files in changeset.
Sort module selectors

This commit reworks module selectors so that they are sorted

in an order which reduces the cost of module selection. We

make sure to put local (project) selectors first, then we

use selectors from locks (if any).

The next selectors are "latest" version selectors because

even if they are dynamic, they are likely to "win" selection.

Then, exact version selectors are sorted by version descending

, and last we add dynamic version selectors.

    • -3
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 19 more files in changeset.
Sort module selectors

This commit reworks module selectors so that they are sorted

in an order which reduces the cost of module selection. We

make sure to put local (project) selectors first, then we

use selectors from locks (if any).

The next selectors are "latest" version selectors because

even if they are dynamic, they are likely to "win" selection.

Then, exact version selectors are sorted by version descending

, and last we add dynamic version selectors.

    • -3
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 19 more files in changeset.
Sort module selectors

This commit reworks module selectors so that they are sorted

in an order which reduces the cost of module selection. We

make sure to put local (project) selectors first, then we

use selectors from locks (if any).

The next selectors are "latest" version selectors because

even if they are dynamic, they are likely to "win" selection.

Then, exact version selectors are sorted by version descending

, and last we add dynamic version selectors.

    • -3
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 19 more files in changeset.
Sort module selectors

This commit reworks module selectors so that they are sorted

in an order which reduces the cost of module selection. We

make sure to put local (project) selectors first, then we

use selectors from locks (if any).

The next selectors are "latest" version selectors because

even if they are dynamic, they are likely to "win" selection.

Then, exact version selectors are sorted by version descending

, and last we add dynamic version selectors.

    • -3
    • +3
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 19 more files in changeset.
Fix corner case of deferred selector resolution

When a selector is deferred and the constraint disappears, it still

needs to be resolved.

    • -0
    • +59
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 1 more file in changeset.
Fix corner case of deferred selector resolution

When a selector is deferred and the constraint disappears, it still

needs to be resolved.

    • -0
    • +59
    ./PublishedDependencyConstraintsIntegrationTest.groovy
  1. … 1 more file in changeset.