Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Rename inheritStrictVersions() -> endorseStrictVersions() (#10755)

This name change more clearly communicates the semantics of the

feature from a users point of view.

This commit also removes all mentions of 'inheriting' AND 'forSubgraph'.

There have been some leftovers in documentation/comments that

would have been misleading in the future. To make sure we catch all,

this also updates all variable/method/package names.

  1. … 65 more files in changeset.
Fix errors in the single version description

  1. … 2 more files in changeset.
Further invalid dependency declaration

* Prevent combining artifact and target configuration declaration

Fixes #10532

  1. … 3 more files in changeset.
Introduce shorthand notation for strict versions

This commit introduces a modifier (!!) that can be

used in version strings to introduce a strict version.

For example, the following notation:


is equivalent to:

version { strictly '1.0' }

And this notation:


is equivalent to:

version {

strictly '[1.0, 2.0]'

prefer '1.5'


  1. … 2 more files in changeset.
Deprecated `force` on first-level dependencies

This commit deprecates using `force` in favor of using the

new "strictly" behavior. The "force" flag is still used

internally, in particular in case of virtual platforms, but

its usage should be discouraged as we have a solution which

is better now.

  1. … 22 more files in changeset.
Use "real" cache layout version

  1. … 1 more file in changeset.
Support prefix and latest selectors in strictly

This was basically just about adding test coverage.

The assumed behavior is that `latest.release` would

accept _any_ version when used in a reject selector,

so that we can iterate on rejected versions until

we find a match.

  1. … 3 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.
Support adding variants and files in component metadata rules (#10368)

Support adding variants and files in component metadata rules

  1. … 2 more files in changeset.
Updates to terminology for clarity

- `inheritStrictConstraints` -> `inheritStrictVersions`

- `notInheritStrictConstraints` -> `doNotInheritStrictVersions`

  1. … 29 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).

  1. … 68 more files in changeset.
Do not follow symlinks when removing work outputs

  1. … 18 more files in changeset.
Serialize dependency artifacts in for realized variant of metadata

Addition to #10372

  1. … 6 more files in changeset.
Make evaluation of base variant rules lazy

  1. … 6 more files in changeset.
Remove deprecated constructor

  1. … 2 more files in changeset.
Ignore POM parent matching current POM

While Maven forbids creation of such a POM, it parses dependencies

defined that way fine.

Fixes #1084

  1. … 1 more file in changeset.
Add test coverage for artifact selectors in GMM

  1. … 5 more files in changeset.
Add removeAllFiles() to variant files modification API

Files from an existing 'base' are now also transferred to the new

variant (but can then be removed with removeAllFiles()). This makes:

- The behavior more consistent (before everything was transferred

*except* for the files)

- The 'enrich plain ivy with variants' use case better as you do not

manually have to re-add the files that are already in the configuration


  1. … 12 more files in changeset.
Add API method to ad a variant without base

Also extend documentation about 'base' and throw errors if a

non-existing base is defined.

  1. … 6 more files in changeset.
Fix failing tests from insecure HTTP deprecation changes

  1. … 5 more files in changeset.
Fix failing tests from insecure HTTP deprecation changes

  1. … 13 more files in changeset.
Fix DefaultFlatDirArtifactRepositoryTest

Merge branch 'master' into feature/JLL/depricate_http_download_dependencies

* master: (77 commits)

Realized component variants need to provide all attributes

Fix TeamCity Hygiene failures

New performance process (#10361)

Publish 5.6.1-20190825230025+0000

Publish 5.6.1-20190824230038+0000

Update .com userguide links

Update .com footer links

Update .com header links

Publish 5.6.1-20190823234015+0000

Rebase to latest 6.0 nightly

Revert "Recognize contributor"

Remove use of Java 11 API from instant execution

Recognize contributor

enhanced test source folder detection for eclipse task. (#10320)

Publish 5.6.1-20190823130927+0000

Rebase performance tests with 5.7-20190812122716+0000 baseline

Upgrade wrapper to 6.0 nightly

Rebase performance tests with 5.7-20190722220035+0000 baseline

Rebaseline to lock performance improvements

Temporarily use 5.6 as the baseline for Santa Tracker `assembleDebug` case.


  1. … 16 more files in changeset.
Refactor HTTP deprecation logic to use HttpRedirectVerifier

  1. … 58 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. … 31 more files in changeset.
Do not drop variant attributes in results based on maven artifacts

FixedComponentArtifacts dropped the variant attributes (stored in

ConfigurationMetadata) for no clear reason. Because of this, the

attributes in the resolve result differed depending on whether the

variant was constructed from pom or GMM.

This is only affecting the attributes reported in the result. During

matching, which happens earlier, all attributes were already considered.

  1. … 17 more files in changeset.
Replace usages of `FileResolver.resolveFile()` with `FileCollectionFactory.resolving()` or `FileOperations.immutable()`, so that `FileResolver` can be responsible only for converting scalar values to File-ish values.

  1. … 39 more files in changeset.
Make selected variant known to artifact resolving

This will allow us to use different resolving strategies depending

on the variant that carries the artifact(s). We need this to allow

modules with variants from mixed origins. For example, a module

with only pom metadata, which carries additional variants added

by component metadata rules.

  1. … 11 more files in changeset.
Add support for adding variants and files to component metadata rules

  1. … 28 more files in changeset.