Gradle

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Mark offending test with @LeaksFileHandles

Simplify DetailLevel enum

Source sets and project dependencies in buildSrc source roots

A BuildSrcProjectConfiguration action creates a task that generates a

text file containing the source roots for the root buildSrc project and

all its runtime project dependencies.

This allows for correct buildSrc source roots resolution when editing

kotlin settings or build scripts in the presence of a multi-project

buildSrc build.

    • -0
    • +1
    /tooling-builders/src/main/resources/META-INF/services/org.gradle.initialization.buildsrc.BuildSrcProjectConfigurationAction
Simplify Profiler interface

Fix test now that rejected components may be resolved

Now that we don't fail early for rejected components, there are times

when we resolve the metadata of a component that will be rejected. In

this case the published metadata was invalid for the Ivy resolve

test cases.

Collapse more infrastructure frames in simplified graphs

Remove unused method

Construct reject failure reason when validating graph

Instead of building the failure reason during conflict resolution

when we find a rejected component, we now flag the component as rejected

but only build the message later when actually validating the graph.

This required a change to the message builder, so that it constructs

a failure message based on the edges and selectors in the graph, rather

than attempting to build this from the components provided to conflict

resolution.

Make raw flame graphs more detailed

Combining the fine-grained detail of the unfiltered data with

a minimum width of 1 pixel was leaving large gaps in the graphs.

Instead, the raw graphs now use a higher resolution.

Make precompiled script plugins publishable via `maven-publish`

By populating `gradlePlugin.plugins` eagerly.

Introduce `@DontDeleteTemporaryFolder` for debugging

Perform version conflict resolution when selecting

This change consolidates all of the logic to choose a particular module

version for the current set of selectors, when a new selector is discovered.

Previously, version-range merging was done eagerly, but actual conflict

resolution was deferred until later in graph resolution. This disconnect

led to a number of selector-ordering issues and made it difficult to

consider all known version constraints when making the choice.

For now, module version selection is still done in a pairwise fashion:

only the current selection and the newly discovered candidate are

considered. But this new algorithm will make it possible to consider

all possible candidates when resolving, allowing better choices to be

made in the presence of `reject` constraints.

Use long options to make code more readable

Create allocation and blocking flame graphs

This should help capture regressions that are not reflected in on-CPU time.

Create raw flamegraphs alongside simplified ones

Most problems are easily visible in simplfied flame graphs.

They significantly reduce the mental load and will make diffs easier.

Some problems might require a look at the raw data though,

e.g. to spot the exaxt line number of a problematic frame.

For this purpose we now also generate flame graphs from the raw data.

Collapse infrastructure methods on flame graphs

Gradle has a lot of infrastructure code which rarely changes.

These code paths rarely cause a regression and so it is sufficient

to view them as a single frame in most cases.

Show simple type names in flame graphs

It is usually clear from the context which type is meant.

We could later add a "raw" flamegraph alongside it which contains full signatures.

Close .json capabilities file to fix Windows

Rename moduleVersion -> candidate

Say grouped 'console' logs in release summary

Generate icicle graphs for hotspot analysis

Further polish JfrProfiler

Use NoopProfiler instead of if-conditions in JfrProfiler

Remove some unused files

Add invoke operator fun on Spec

Mark offending test with `@LeaksFileHandles`

Add ContentFilterable.filter<T>() kotlin extensions

Work around `KT-23413`

See #784

Task constructor argument test cleanup (#4812)

* Move Kotlin task creation tests from GradleKotlinDslIntegrationTest to TaskDefinitionIntegrationSpec

* Remove redundant task creation tests via Java plugin

* Clean up review comments on TaskDefinitionIntegrationSpec

* Rename test methods in DefaultTaskContainerTest

* Clean up review comments on TaskDefinitionIntegrationSpec

* Fix codenarc failure

* Add task creation test for wrong constructor argument type

* Update tests from review comments

* Add test case for null constructor argument value

* Fix formatting

Use custom permutation generator for test

This allows the test execution to be more fine-grained, and makes the

results easier to interpret.

Thanks to @melix for inspiration.