Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Location aware exceptions for script evaluation errors

Merge pull request #785 from gradle/bamboo/lcbp/settings

Make precompiled script plugins publishable via `maven-publish`

Remove hardcoded version in ktlint-convention plugin tests

Fix buildSrc classpath invalidation between regular and ide modes

Previous implementation using a file added to buildSrc jar was a bad

idea, it would have invalidated the buildSrc classpath each time build

executions switch between regular and ide modes.

Put the file under `buildSrc/build` instead.

Record more events with JFR

The default thresholds for IO and blocking are pretty high.

That's because it is meant to be usable in production.

We are more interested in getting enough data to pinpoint regressions.

Polish SourcePathProviderTest

KotlinDslProviderMode is internal

Detangle project source roots matching fixture

Short circuit buildSrc source roots action when not in classpath mode

in order not to impact all other build executions

by extracting classpath mode switch to its own type

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
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


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