Gradle

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge branch 'master' into pm/plugins-dsl/script-plugins

    • -0
    • +3
    /subprojects/docs/src/docs/release/notes.md
Script plugins applied using plugins {} can use mixed scripting languages

Fix flaky tests caused by accidental cache hit (#3025)

gradle/gradle-private#948

When two tests happen to be assigned the same port number, the cache

is hit by accident. This result in different control flows and flaky tests.

Add Verbose console type (#2933)

Fix https://github.com/gradle/gradle/issues/2642

This PR adds a console type 'verbose' to display all tasks' header regardless of whether that task generates output.

Explicitly ignore incoming build receipts in sanity check

There may be a stale build receipt file in the working directory from

another build further down the pipeline that ran on the agent before.

Unify error messages for Gradle build options (#2934)

Unify error messages for Gradle build options #2917

  1. … 5 more files in changeset.
Changed error messages on failure to match attributes across build boundaries to better handle the cases where an attribute has a different type in each build.

Improve attribute matching across build boundaries to also work correctly for values that are serializable.

Re-enable test

Store hierarchy as a list

This changes the backing storage of the hierarchy to a list, improving iteration.

Avoid more allocations

More efficient conflict registration

Instead of iterating over all conflicts (the list can grow big) and finding out if one of the conflicts

participants is the same as the current participants, we can build a reverse index (participant -> conflict)

and use it. This makes the check O(1) instead of O(n) (plus intersection computation).

Signed-off-by: Cedric Champeau <cedric@gradle.com>

Add test coverage when deleting all sources for both Swift and Cpp (#2920)

* Add test coverage when deleting all sources for both Swift and Cpp

It also fixes the InstallExecutable task to correctly clean the output when the input is missing.

* Remove pdb files if present when cleaning incremental output

Avoid allocation of an array when there's no or only one unattached dependency

Avoid allocation of an array list when there's no or only one incoming edge

Reduce number of lists being created

Remove unnecessary return

Signed-off-by: Cedric Champeau <cedric@gradle.com>

Temporarily ignore performance tests while I'm investigating

Ignore DescriptiveChange in ChangesOnlyIncrementalTaskInputs.outOfDate(#1224) (#2979)

https://github.com/gradle/gradle/issues/1224

In current InputFilesTaskStateChanges implementation, file properties

changes and file changes are not separated. This would result in that

DescriptiveChange are added into inputFileChanges and ClassCastException

in ChangesOnlyIncrementalTaskInputs.doOutOfDate (#1224).

This PR ignores the DescriptiveChange in ChangesOnlyIncrementalTaskInputs.outOfDate

Support zulu9 version number(#2992) (#2994)

https://github.com/gradle/gradle/issues/2992

zulu JDK 9 introduces version number format '9.0.0.15' which

can't be recognized by Gradle. This fix adjusts the recognition

pattern.

Convert userguide to asciidoc, war to writing (#2989)

    • -0
    • +132
    /subprojects/docs/src/docs/userguide/warPlugin.adoc
    • -184
    • +0
    /subprojects/docs/src/docs/userguide/warPlugin.xml
Script plugins can use the plugins {} DSL to define their dependencies on builtin plugins

Explode the beast into smaller pieces

This commit extracts all inner classes from `DependencyGraphBuilder`, as well as the builder itself, into its own package. The reason is that this class

had just became too big, and that there was a lot of shared state. By exploding it into well defined classes of their own, state can be locked and we can

effectively track where it is mutated. While not yet perfect, this should prevent headaches to future maintainers.

Improve attribute matching across build boundaries to also work correctly for values created using `ObjectFactory.named()`.

  1. … 7 more files in changeset.
Initial support for attribute matching that works across ClassLoader boundaries. In this change, enum values with the same class name and enum value are considered matching regardless of which ClassLoader the enum class is defined in.

Changed attribute matching to consider two attributes with the same name as the _same_ attribute, failing if the producer and consumer values have types that are not compatible. Previously, two attributes with the same name and different types would be considered distinct attributes, leading to some confusing behaviour when types are mismatched.

Removed validation from `Attribute.of()`, as the set of valid types is a function of how and where the attribute is used. Instead, moved the validation to `AttributeContainer.attribute()` to accept anything that can be made isolated.

Added some functional test coverage for how attribute values behave.

Changed `AttributeValue` and `ImmutableAttributes` to be interfaces.

Added query methods to `ImmutableAttributes` to allow the value of an attribute to be queried as an `AttributeValue` without eagerly unpacking the value of the attribute.

This is just a restructure, the value is still eagerly unpacked in the query method in this change.

Retain the value of a variant attribute as an isolated value, rather than retaining the original value. Attribute values are snapshot at the point where the attribute is registered and are isolated from further changes to the original value.

This change allows attribute matching to more safely happen in parallel and means that attribute values can behave more consistently with other features that use isolated and snapshot values, such as task inputs or artifact transforms.

  1. … 4 more files in changeset.