Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Add mention to exclude merging in release notes

    • -0
    • +6
Use 5.5-rc1 wrapper as rc2 and rc3 are broken

    • -1
    • +1
Fix incorrect reduction of intersections

Simplification of intersections in the normalizing exclude

factory is done by pairs. There was a bug in the reduction

algorithm, that would cause the reduction result to be

wrong because we used the wrong, non simplified, exclude spec

for merging whenever a merge occured, to reduce on the next

item in a list.

Optimize a couple more cases

Optimize intersect(group, module) -> moduleId(group, module)

Optimize intersect(group, module names) -> moduleIdSet(group + name...)

Fix incorrect simplification of intersection of unions

The result of simplification was only correct if there was one

item not in common on both hands of the intersection.

Fixes #9718

Update to latest RC

    • -1
    • +1
Merge pull request #9701 from gradle/cc/dm/fix-exclude-perf

Fix exclude rule merging performance

Add exclude intersection normalization

This commit introduces exclude intersection normalization.

This is done to avoid the "exclusion explosion" in case:

- we have 2 incoming edges to the same node

- those edges have different excludes

- the different edge excludes cannot be merged (e.g having a `group` and `moduleId` exclude on each)

Add fast exit on fast iteration

This commit adds a fast exit path when the fast iterator

is exhausted: we don't have to iterate because we already

know there's no possible candidate.

Optimize `equalsIgnoreArtifact`

In some cases, calling `equalsIgnoreArtifact` may be extremely

costly. This optimizes the algorithm for different cases:

1. the specs we compare actually do not exclude artifacts, in

which case we can compare by equality

2. the specs we compare are in a different order, in which

case we can avoid deep `equals` calls

3. the specs we compare are different, but some of them are

equal and we should avoid considering them candidates again

Attach node selection failures to constraint edges

When a constraint edge cannot find target nodes, we check if a selection

failure needs to be attached.

Issue #9692

Revert performance ratcheting

Revert changes to TarFileTree and ZipFileTree that assume you always visit the entire archive

Reproduce #9673

Update wrapper to 5.5.-rc-2

    • -1
    • +1
Fix corner cases in graph resolution

The deferred selection still had a couple corner cases where the graph

was not in the right state. It was possible to leak selectors and/or

unattached dependencies.

Fixes #9641

Update sample of building a Gradle distribution

- Use Providers

- Avoid warnings from new validation checks

- use plugins {}

Link to sample of custom Gradle distribution

Remove unused/outdated customDistribution sample

Add warning about changes to worker API processes

Rearrange release notes

    • -24
    • +26
Clarify the meaning of declared version for publication

Closes #9565

Fix inconsistent serialization state when resolution cache expires

Resolution results are cached, but the cache may expire or entries

in the cache may be evicted, in case there are many configurations

resolved. This has the consequence that the streaming resolution

builder root factory may be called multiple times for the same

configuration, and therefore the file may be read several times

within a build.

This commit fixes a bug with attribute serialization where the state

of the serializer would make the 2d read incorrect.

Update release notes to mention abstract service injection methods, managed properties and the new user manual chapter.

Also some release notes editing.

    • -10
    • +34
Minor user manual edit.

Mention DependencyHandler : ExtensionAware in upgrade guide

Signed-off-by: Paul Merlin <>

Clarify the use of new ObjectFactory methods

    • -4
    • +6
Update wrapper to 5.5-rc-1

    • -1
    • +1
Fix artifact transform link in release notes

    • -1
    • +1
Some edits to the 'custom gradle types' user manual content.