Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Spelling (#8199)

Fix several spelling issues.

    • -1
    • +1
  1. … 36 more files in changeset.
spelling: removing

Signed-off-by: Josh Soref <>

Normalize `ModuleIdentifier`

This commit reworks the `ComponentModuleIdentifier`/`ComponentModuleSelector`/`ModuleVersionSelector`

classes to use `ModuleIdentifier` under the hood, instead of storing denormalized strings. This has

the advantage that we can reduce the use of the module identifier factory, which is called very

often during dependency resolution. Sharing instances reduces the need for conversions, and makes

comparisons faster.

    • -6
    • +10
  1. … 164 more files in changeset.
Revert De-duplicate commonly used immutable objects in dependency resolution and IDE changes

Commits reverted:

- 807b1e4f8d1585d93c1de3e9ca83d99d0819e2d2

- 9482b0b05374253cafdb776550d7016385912e04

- 4ecead06b53ec6b0f15c517bf0d0c6a74c3b3c05

- db1135a8a5f1c507e0df3c03ad12ddc963799e4d

- 7350bcbae30a777909cec74ebfd5a91d2c89081e

Additionally, minor changes to avoid usage of introduced

classes and methods from subsequent commits.

Issue: gradle/gradle-private#563

    • -6
    • +6
  1. … 109 more files in changeset.
De-duplicate (= intern) some instances in dependency resolution

- Reduce memory usage of dependency resolution by de-duplicating the

most commonly used immutable instances.

- Objects aren't strictly immutable: displayName is calculated lazily

- solution is thread-safe without synchronization

- lazy calculation is needed for efficient interning since a lookup

will always create a new instance.

- Use strong references in some instance interners

- strong references cause less GC overhead than weak references

- Strong references:







- Weak references:




- Both reference types:



- The reason for special handing is that DefaultBuildIdentifier

has a state field "current" as part of the instance which

isn't part of equals/hashCode.

+review REVIEW-6277

    • -6
    • +6
  1. … 104 more files in changeset.
Moved more classes to live with the logging text output classes.

    • -1
    • +1
  1. … 59 more files in changeset.
Changed a number of int tests to make assertions using the normalized build output rather than the full build output.

    • -10
    • +29
  1. … 11 more files in changeset.
Moved logging test fixtures from 'core' to 'logging' project.

    • -1
    • +1
  1. … 47 more files in changeset.
Better fix for ComponentRenderer(Test)

Revert changes in ComponentRenderer.

If the component is no SourceComponentSpec, no source-sets section is


If the component is a SourceComponentSpec with no sources, a source-sets

section is rendered advertising "No source sets".

The same for VariantComponentSpec and binaries.

  1. … 1 more file in changeset.
Fix diagnostics tests

    • -1
    • +2
  1. … 1 more file in changeset.
Coverage for model --format=short in ModelReportParserTest

+review REVIEW-5810

    • -0
    • +25
Revert "Promote o.g.model/{internal/core/rule/describe=>}/ModelRuleDescriptor"

This reverts commit de9e06338062d7ff2933717e1c30fbf0fb6c50d2 following a

review in which we determined that letting the indirect cycle persist is

a lesser evil that promoting ModelRuleDescriptor to public status.

Note again that the original commit, nor this reversion of it has any

impact on Classycle errors, as it appears to be incapable of detecting

this kind of (very common) cycle.

  1. … 85 more files in changeset.
Promote o.g.model/{internal/core/rule/describe=>}/ModelRuleDescriptor

Much like the previous commit, this change resolves an indirect package

cycle. Unlike the previous commit, however, it does so by promoting a

previously intenal type (ModelRuleDescriptor) to public API status.

There are several exception types resident in org.gradle.model that

depend on ModelRuleDescriptor and expose that dependency through their

constructors. This alone provides a rationale for promoting

ModelRuleDescriptor to public status, and resolving the cycle is now an

additional motivation.

Note that while the package structure within on the internal side was

org.gradle.model.internal.core.rule.describe, ModelRuleDescriptor has

been promoted here directly to org.gradle.model, i.e. the

core.rule.describe subpackaging has not been mirrored into the public

package structure. The reason for doing this is to avoid introducing a

dependency from a higher level package (org.gradle.model) to a

subpackage. In general, package dependencies should always flow upward

from subpackages to parent packages in a given hierarchy, and not the

other way around. There are many counterexamples of this throughout the

codebase today, but that is no reason to perpetuate the practice.

  1. … 83 more files in changeset.
Added some unit test coverage for selection of correct renderer for a binary spec.

    • -0
    • +64
Rework of source-set dependencies

- Converted DependentSourceSetInternal to a public DependentSourceSet type

- Removed some unnecessary coupling from DependentSourceSetResolveContext

  1. … 8 more files in changeset.
Allow LanguageSourceSet instances to be attached to a managed type

- Fix model report parsing issue

+review REVIEW-5673

    • -5
    • +42
  1. … 4 more files in changeset.
Fixed broken unit test on windows.

Some tweaks to DefaultTextReportBuilder.

  1. … 2 more files in changeset.
Removed the `+ model` node from model report.

    • -40
    • +22
  1. … 3 more files in changeset.
Changed implementation of `TextReportBuilder` so that the various methods work better at various nesting levels, and removed `itemCollection()`. Implementation is still a bit sketchy.

Removed custom formatting from various renderers.

  1. … 8 more files in changeset.
Show the includes for the source set's filter in the component report.

    • -10
    • +32
  1. … 4 more files in changeset.
Add test case for super-defined toString() vs Named

+review REVIEW-5596

Show JVM binary variants in component report

+review REVIEW-5596

    • -0
    • +80
  1. … 19 more files in changeset.
Changes rule filtering to use Iterable - Moved filtering method to renderer class - Using logical equality to filter method descriptors

+review REVIEW-5526

    • -0
    • +44
    • -43
    • +0
  1. … 7 more files in changeset.
Filters the rules displayed on the model report

+review REVIEW-5526

    • -0
    • +43
  1. … 8 more files in changeset.
Shows more concise names for rule source method rules


  1. … 32 more files in changeset.
Introduced `ComponentSpec.getSources()` in place of `getSource()`

+review REVIEW-5541

    • -1
    • +1
  1. … 27 more files in changeset.
Removes trailing pipe from model report elements

+review REVIEW-5524

    • -14
    • +14
  1. … 4 more files in changeset.
Some minor polishing of the model report fixtures.

+review REVIEW-5512

    • -14
    • +14
  1. … 9 more files in changeset.
Refactors model report tests - Split out parsing logic from assertion logic - Have ReportNode extend groovy's groovy.util.Node to allow GPath - Adds unit tests for report parsing - closing the model view after accessing description

+review REVIEW-5512

    • -0
    • +42
    • -0
    • +137
    • -0
    • +42
  1. … 12 more files in changeset.