Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Dogfood ImmutableFileCollection on production code (#4988)

Use ImmutableFileCollection in production code

  1. … 88 more files in changeset.
Remove model rules from ivy-publish plugin

  1. … 5 more files in changeset.
Make IvyArtifact lazy

  1. … 11 more files in changeset.
Make Ivy project identity live

  1. … 2 more files in changeset.
Delegate artifact creation to Publication

Issue: #4943

  1. … 34 more files in changeset.
Remove special treatment for Gradle module descriptor from Ivy publishing

Issue: #4943

  1. … 4 more files in changeset.
Fix build

  1. … 15 more files in changeset.
Dogfood ImmutableFileCollection in tests (#4972)

Reduce the number of static factory methods from ImmutableFileCollection

Use layout.fileFor() in a smoke test

  1. … 32 more files in changeset.
Do not add module metadata file to publishable files if deactivated (#4776)

Fixes #4760

  1. … 3 more files in changeset.
Changed the 'swiftpm-export' plugin to reuse the same service to map a project dependency to a Swift PM target, as is used by the other publishing plugins to map a project dependency to a GAV.

  1. … 19 more files in changeset.
Moved service that takes care of mapping a project dependency to a GAV to the 'dependency-management' project, where it can be reused outside of the Maven and Ivu publishing plugins.

  1. … 13 more files in changeset.
Fix ignored tests, take 2

  1. … 2 more files in changeset.
Revert "Fix ignored tests"

  1. … 2 more files in changeset.
Fix ignored tests

  1. … 2 more files in changeset.
Ignore failing tests temporarily

  1. … 1 more file in changeset.
Re-use `TaskDependencyResolveContext` during task graph building (#3807)

All dependency resolution in Gradle should happen via TaskDependencyResolveContext during when building the task graph. Calling `DefaultTaskDependency.getDependencies(task)` should be avoided since it creates a new `TaskDependencyResolveContext` and needs to calculate the dependencies again.

`SkipTaskWithNoActionsExecuter` now re-uses the `TaskExecutionGraph` to determine the dependencies of a task instead of re-evaluating them.

After this commit, the task properties are resolved at three places:

- When building the task graph for walking the input files

- When checking if there a task can be executed in parallel with the currently running tasks based on on the declared outputs, destroyables and task local state

- For using the task properties during task execution

The last two places could still be unified into one, but that seems to be a little bit more complicated.

  1. … 23 more files in changeset.
Rename 'experimental features' to 'feature previews'

The idea behind this is that we have a set of feature previews rather

than one cryptic experimental flag.

A feature preview collects a set of related functionality (e.g.

everything related to gradle metadata) that changes existing behavior

and thus could potentially break existing builds. The preview options

will be removed with the next major release (currently 5.0) and the new

behaviour will then become the default.

Signed-off-by: Jendrik Johannes <>

  1. … 45 more files in changeset.
Adjust tests to use the new experimental feature option

Signed-off-by: Jendrik Johannes <>

  1. … 23 more files in changeset.
Initial implementation of component metadata rules allowing modification of variant attributes

This commit introduces metadata rules that support modification of variant attributes. Variant attributes

are specific to each variant and can be found in module metadata. Those are NOT component level attributes,

which could be used during dependency resolution. This will be added in a subsequent commit.

  1. … 49 more files in changeset.
Create all mutable Ivy module resolve metadata through factory

This will simplify the injection of services through the factory, when we will need the immutable

attributes factory to be pushed to resolve metadata.

  1. … 26 more files in changeset.
Allow an Ivy descriptor to be published with empty dependency version

When no version was specified for a dependency, the `ivy-publish` plugin

would attempt to publish an Ivy file with a missing 'rev' attribute. This

caused XML validation to fail for the generated file.

We now publish a `rev=''` attribute when the dependency version is missing,

allowing these projects to be successfully published using 'ivy-publish'

  1. … 3 more files in changeset.
Make java libraries publishable on Ivy using Gradle metadata

This commit completes Gradle metadata publishing on Ivy repositories. It adds the necessary support, and

converts several tests to the wrapping `javaLibrary` test fixture.

  1. … 27 more files in changeset.
Publish Gradle metadata on Ivy repositories

This commit adds support for publishing Gradle metadata on Ivy repositories. Existing tests haven't been

adapted yet.

  1. … 9 more files in changeset.
Add `status` to Gradle module metadata

This commit adds attributes to top level component in Gradle metadata. Attributes are written to Gradle metadata files,

and when read, some attributes can be mapped to existing, legacy, properties of component metadata. This is the case

for the "status" property, which is now mapped to a component attribute when serializing, and mapped back to the "status"

property when reading.

This commit also introduces a test that makes sure that the status is actually read from the Gradle metadata file, by

totally ignoring the Ivy descriptor.

  1. … 18 more files in changeset.
Remove `FOR_COMPILE` and `FOR_RUNTIME` from Usage

The constants had been replaced internally, except for publication. This commit removes them in favor of

using the more specific `JAVA_API` and `JAVA_RUNTIME` constants (in their string forms, making it possible

later to match by value, avoiding classloading issues).

  1. … 8 more files in changeset.
Merged the file resource implementation for the public `Resource` API into the file resource implementation for `ExternalResource` used by dependency resolution and publishing. This is a small step towards merging and reusing all the various resource implementations.

  1. … 30 more files in changeset.
Moved `FileResourceConnector` from 'dependencyManagement' to 'resources' project.

  1. … 10 more files in changeset.
Added `FileResourceRepository` as a global service for creating various file backed `ExternalResource` implementations. Use this in various places instead of creating these implementations directly.

  1. … 41 more files in changeset.
Replaced `ExternalResourceRepository.getResourceMetaData()` with `ExternalResource.getMetaData()`.

Also changed the file backed implementation of `ExternalResource` to use `FileSystem.stat()` to calculate the file meta-data, rather than using the `File` API.

  1. … 50 more files in changeset.
Detangle ivy module descriptor parser

This commit removes the Ivy module descriptor parser as a service, because it unfortunately introduced

a lot of tangling between projects, making it necessary to introduce `project(':ivy')` as a dependency

to almost all projects.

This commit removes the parser as a service and creates it on demand. It should not have a big impact

on performance since there should be only one instance in global scope, through `IvyResolver`.

  1. … 19 more files in changeset.