BuildSrcIdentityIntegrationTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Improve error message when build fails because of missing metadata

Gradle 6.0 removed the "artifact" metadata source by default.

This means that if a module is published _only_ with an artifact,

previous version of Gradle would find it, but 6.0 would fail with

a module missing exception.

The problem is that it's hard to realize that the issue comes

from the change of this default artifact sources.

This commit tries to improve the situation by recognizing that

a failure is related to not finding metadata, and in this case

would suggest that if the metadata is missing, it is still

possible that the jar is present.

The drawback of this approach is that we're unsure: if, for

some reason, the module is _really_ absent, then we gave a

wrong advice. This means, in particular, in case of wrong

coordinates.

    • -0
    • +1
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 12 more files in changeset.
Improve error message when build fails because of missing metadata

Gradle 6.0 removed the "artifact" metadata source by default.

This means that if a module is published _only_ with an artifact,

previous version of Gradle would find it, but 6.0 would fail with

a module missing exception.

The problem is that it's hard to realize that the issue comes

from the change of this default artifact sources.

This commit tries to improve the situation by recognizing that

a failure is related to not finding metadata, and in this case

would suggest that if the metadata is missing, it is still

possible that the jar is present.

The drawback of this approach is that we're unsure: if, for

some reason, the module is _really_ absent, then we gave a

wrong advice. This means, in particular, in case of wrong

coordinates.

    • -0
    • +1
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 12 more files in changeset.
Improve error message when build fails because of missing metadata

Gradle 6.0 removed the "artifact" metadata source by default.

This means that if a module is published _only_ with an artifact,

previous version of Gradle would find it, but 6.0 would fail with

a module missing exception.

The problem is that it's hard to realize that the issue comes

from the change of this default artifact sources.

This commit tries to improve the situation by recognizing that

a failure is related to not finding metadata, and in this case

would suggest that if the metadata is missing, it is still

possible that the jar is present.

The drawback of this approach is that we're unsure: if, for

some reason, the module is _really_ absent, then we gave a

wrong advice. This means, in particular, in case of wrong

coordinates.

    • -0
    • +1
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 12 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
    ./BuildSrcIdentityIntegrationTest.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
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 32 more files in changeset.
Adjust tests and samples to new metadata sources defaults

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

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

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

    • -1
    • +0
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 15 more files in changeset.
Finalize the value of any task `@Input` property whose getter returns a property instance, at the start of execution of the task.

This means that the property value will not change once the task has started execution, so that the same value is always used during fingerprinting, cache key calculation, validation, when queried by a task action, and so on.

This behaviour only applies to `@Input` properties in this commit. This was just a place to start. Other properties will be added in later commits.

Changes to the property are ignored once the value is finalized implicitly in this way and generate a deprecation warning instead of failing, as would happen after `finalizeValue()` is called. This allows a migration path for task types that can add a new property to represent some input and keep their existing lenient (but now deprecated) behaviour for an existing property backed by the new property. It might prove better to flip this around, let's see.

    • -2
    • +4
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 61 more files in changeset.
Update integTests for changed failure case

We now resolve `compileClasspath` before `runtimeClasspath` so the

failure message is different (when both would fail).

    • -2
    • +2
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 1 more file in changeset.
Add more test coverage for the names of things and the build operations generated by various combinations of `buildSrc`, included builds and source dependencies.

    • -12
    • +57
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 7 more files in changeset.
Replace the `BuildIdentity` build scope service with the `BuildState` instance that represents the current build.

    • -0
    • +36
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 27 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.

    • -2
    • +2
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 37 more files in changeset.
Restore `BuildIdentifier.isCurrentBuild()`.

    • -0
    • +2
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 16 more files in changeset.
Added some test coverage for buildPath/buildIdentifier in various build compositions.

    • -0
    • +104
    ./BuildSrcIdentityIntegrationTest.groovy
  1. … 10 more files in changeset.