Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Spike: requireTransitive()

    • -6
    • +16
    ./DefaultImmutableVersionConstraint.java
    • -1
    • +13
    ./DefaultMutableVersionConstraint.java
    • -1
    • +2
    ./DefaultProjectDependencyConstraint.java
  1. … 14 more files in changeset.
Add missing @Override to all modules

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

    • -0
    • +8
    ./AbstractExternalModuleDependency.java
    • -0
    • +2
    ./DefaultExternalModuleDependency.java
  1. … 1003 more files in changeset.
Add missing @Override to all modules

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

    • -0
    • +8
    ./AbstractExternalModuleDependency.java
    • -0
    • +2
    ./DefaultExternalModuleDependency.java
  1. … 997 more files in changeset.
Reduce overhead of caching excludes

This commit replaces the exact key match, which involved creation

of a set of incoming edges, with a long hash computation (sum of

hashes of incoming edges + length). This reduces the overhead of

caching, especially in case there are _no_ excludes.

    • -0
    • +6
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Reduce overhead of caching excludes

This commit replaces the exact key match, which involved creation

of a set of incoming edges, with a long hash computation (sum of

hashes of incoming edges + length). This reduces the overhead of

caching, especially in case there are _no_ excludes.

    • -0
    • +6
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Partial ordering of module selectors

With this commit, we do a partial sort on the selectors, where we place

the dynamic selectors at the end compared to the other ones.

This allows a more efficient resolution in some corner cases but is

mostly preparation work for follow up changes.

    • -0
    • +11
    ./DefaultResolvedVersionConstraint.java
  1. … 7 more files in changeset.
Fix constrainsts onto different projects

This commit fixes a class cast exception whenever a constraint

onto another project enters the graph. This prevented the use

of platforms as a way to implement native dependency version

alignment.

    • -1
    • +12
    ./DefaultProjectDependencyConstraint.java
  1. … 1 more file in changeset.
Fix constrainsts onto different projects

This commit fixes a class cast exception whenever a constraint

onto another project enters the graph. This prevented the use

of platforms as a way to implement native dependency version

alignment.

    • -1
    • +12
    ./DefaultProjectDependencyConstraint.java
  1. … 1 more file in changeset.
Spike ignoring dependency versions transitively

    • -1
    • +11
    ./DefaultProjectDependencyConstraint.java
  1. … 16 more files in changeset.
Spelling (#8147)

Misspellings make it harder to search for things; they make it harder for people to understand code and descriptions; and sometimes they result in bugs.

This PR fixes quite a few typos.

    • -1
    • +1
    ./DefaultResolvedVersionConstraint.java
  1. … 15 more files in changeset.
Add tests for publishing Java platforms

    • -0
    • +107
    ./DefaultProjectDependencyConstraint.java
  1. … 13 more files in changeset.
Provide special display message for 'reject all'

  1. … 4 more files in changeset.
Add useful displayName to `VersionConstraint`

  1. … 3 more files in changeset.
Clean up a few TODOs

    • -1
    • +0
    ./DefaultResolvedVersionConstraint.java
  1. … 5 more files in changeset.
Support a dependency with both `require` and `prefer` versions

    • -20
    • +10
    ./DefaultResolvedVersionConstraint.java
  1. … 14 more files in changeset.
Maintain separate `prefer` and `require` versions for constraint

    • -7
    • +4
    ./DefaultMutableVersionConstraint.java
  1. … 3 more files in changeset.
Don't implicitly add 'prefer' with 'require'

    • -1
    • +1
    ./DefaultImmutableVersionConstraint.java
    • -3
    • +3
    ./DefaultMutableVersionConstraint.java
  1. … 10 more files in changeset.
Address hashCode() issues where possible

- `CompositeSpec`: Move `hashCode()` to super class where `equals`

was implemented and include hash of concrete class.

- `AbstractDependency`: Push `hashCode()` to concrete subclasses.

- Document rationale for overriding `hashCode()` but not `equals()` in

`DefaultImmutableVersionConstraint`.

    • -0
    • +21
    ./AbstractExternalModuleDependency.java
    • -18
    • +0
    ./DefaultExternalModuleDependency.java
    • -0
    • +2
    ./DefaultImmutableVersionConstraint.java
  1. … 5 more files in changeset.
Use Checkstyle 8.12

- EqualsHashCode is now stricter and emits warnings for classes that

implement `hashCode()` but not `equals(Object)`.

- NoWhitespaceBefore now also checks for space before varargs ellipses.

    • -0
    • +1
    ./DefaultImmutableVersionConstraint.java
  1. … 10 more files in changeset.
Support enforcing a platform using a direct dependency on the platform

Currently this _only_ sets a **force** flag on the platform dependency

transparently. There might be the need to do more in the future, in

particular as soon as we integrate with external platforms (BOMs) published

at coordinates representing different types of components (library and

platform).

There is a consequence in using a dependency, that is the published POM

file will be invalid for Maven consumers.

It's worth noting that in this context, "force" is stronger than a "force"

on a regular dependency: because it's a virtual platform, the engine will

make sure that the edged from the platform to its components are forced

too. In other words, the platform is forced **and** its components.

Note, however, that this is **NOT** true if the target platform is a

published component: in this case, the platform is forced, but the components

of the platform use the rules of the published platform. If the edges are

not forced, the component versions may be upgraded.

    • -0
    • +23
    ./DependencyConstraintInternal.java
  1. … 13 more files in changeset.
Add `MutableVersionConstraint.require(version)`

By default, a dependency like 'org:foo:1.0' defines a 'require' version

constraint.

With this change, it is also possible to set the 'required' version for

a dependency from within `Configuration.withDependencies` or a component

metadata rule. This brings 'require' on par with 'prefer' and 'strictly'

for the purposes of configuration.

    • -0
    • +5
    ./DefaultMutableVersionConstraint.java
  1. … 4 more files in changeset.
Ensure that 'preferredVersion' always provides a useful value

Recent versions of the build scan plugin depend on `VersionConstraint.preferredVersion`

to return a string representation of the version constraint. This was broken with the

recent introduction of `requiredVersion`, where `preferredVersion` only returned a

value when explicitly set with `prefers(version)`.

This change restores the previous functionality: a `requires` version constraint implies

a `prefers` constraint, and a `strictly` constraint implies a `requires` constraint.

    • -2
    • +2
    ./AbstractExternalModuleDependency.java
    • -15
    • +14
    ./DefaultImmutableVersionConstraint.java
    • -15
    • +15
    ./DefaultMutableVersionConstraint.java
    • -1
    • +1
    ./DefaultResolvedVersionConstraint.java
  1. … 15 more files in changeset.
Simplify error reporting for 'require' dependency versions

    • -8
    • +18
    ./DefaultResolvedVersionConstraint.java
  1. … 11 more files in changeset.