component

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
De-incubate a number of dependency management related APIs

  1. … 112 more files in changeset.
De-incubate a number of dependency management related APIs

  1. … 108 more files in changeset.
Change target to 5.3 instead of 5.2

  1. … 3 more files in changeset.
Support requested capabilities on external dependencies

This commit adds support for having requested capabilities

part of the module component selector, for external dependencies.

This means that if a component is using Gradle metadata, we can

read requested capabilities and honor them during selection.

This reworks where requested capabilities are stored, and in

particular moves them to the `ComponentSelector`, making them

properly part of the identity of a dependency. As such, two

dependencies requiring two different variants by using distinct

capabilities will now properly appear as two different dependencies

in the dependency graph, instead of two variants of the same

dependency.

  1. … 63 more files in changeset.
De-incubate 3.x package-info files

And files we missed due to moving things to coreApi.

  1. … 28 more files in changeset.
De-incubate *Component{Identifier,Selector}

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.

  1. … 163 more files in changeset.
Add support for dependency attributes on project dependencies

There was an inconsistency with dependency attributes, that could be used to

select an external dependency, but not a project dependency. This commit aligns

what is possible for both.

  1. … 14 more files in changeset.
Move attributes from dependency metatada to component selector

This commit changes the location where attributes on dependencies are defined, making

them effectively part of the _module component selector_. It's cleaner as it effectively

belongs to the selector state: attributes participate in the selection like group, name

and version.

It will also make module metadata serialization consistent.

  1. … 27 more files in changeset.
Add some Javadoc comments.

Restore `BuildIdentifier.isCurrentBuild()`.

  1. … 16 more files in changeset.
Removed `BuildIdentifier.isCurrentBuild()`, as this represents _state_ about a build that depends on where the build is being observed from and which prevents a `BuildIdentifier` instance being used as an _identifier_ for the build.

  1. … 7 more files in changeset.
Mark all incubating classes in depMgmt used by BuildScanPlugin with @UsedByScanPlugin

  1. … 6 more files in changeset.
Make IDE dependency generation more efficient

Only do a single query to collect project, module

and file dependencies. Get rid of the intermediate

object model and use a visitor pattern to adapt the

data to the specific IDE models instead.

  1. … 33 more files in changeset.
Do not deprecate getVersion() for now

Since `VersionConstraint` is new and effectively 'unreleased', defer

deprecating the method it repaces.

Make `ModuleComponentSelector` the source of truth for version constraints

This commit pushes `VersionConstraint` as a primary concept in `ModuleComponentSelector`. It replaces the (now)

deprecated `getVersion` call, which didn't reflect all possible constraints on a version. This change has several

consequences:

- version constraints now need to be "serializable"

- version constraints now consist of a preferred version and a list of rejected versions

- only a single item in the rejection list is supported

- Gradle module metadata parsing now generates a prefer/reject list

- Gradle module metadata writing does **not** yet support writing prefer/reject

- the module metadata binary format has been bumped to support prefer/reject in module descriptors

- metadata rules can say `useTarget(VersionConstraint)`

Issue #3312

  1. … 93 more files in changeset.
Cover most of `org.gradle.api.*` with nullability annotations

  1. … 30 more files in changeset.
Extract :core-api project (#2719)

    • -0
    • +35
    ./BuildIdentifier.java
    • -0
    • +35
    ./ComponentArtifactIdentifier.java
    • -0
    • +34
    ./ComponentIdentifier.java
    • -0
    • +44
    ./ComponentSelector.java
    • -0
    • +43
    ./LibraryBinaryIdentifier.java
    • -0
    • +49
    ./LibraryComponentSelector.java
    • -0
    • +50
    ./ModuleComponentIdentifier.java
    • -0
    • +48
    ./ModuleComponentSelector.java
    • -0
    • +40
    ./ProjectComponentIdentifier.java
    • -0
    • +41
    ./ProjectComponentSelector.java
  1. … 775 more files in changeset.