Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Removed almost all extra properties and extracted build environment check into plugin

- Moved extra properties into extension methods

- Created AddVerifyProductionEnvironmentTaskPlugin

- Moved build-extensions from kotlin-dsl to configuration submodule

- Created separate extensions for project groups

  1. … 38 more files in changeset.
Add argumentProviders for Exec task

  1. … 7 more files in changeset.
"coordinate" -> "coordinates"

  1. … 60 more files in changeset.
Move dependency constraints into a separate project

  1. … 69 more files in changeset.
Extract idiomatic test-fixtures plugin to buildSrc

Plugin is applied to all "groovy projects", see `groovyProject.gradle`.

The plugin configures the Project as a test fixtures producer if

`src/testFixtures` is a directory.

The plugin configures the Project as a test fixtures consumer according

to the `testFixtures` extension configuration.

No more Groovy Closure with optional parameters as a Project extra


Test-fixtures configuration rely on a Groovy DSL only feature that

allows to pass a collection of dependency notations when declaring

dependencies. The Kotlin DSL lacks this feature, see

A workaround has been put in place in `build-extensions.kt` in order to

move forward until this is properly fixed in the Kotlin DSL.

Signed-off-by: Paul Merlin <>

  1. … 70 more files in changeset.
Make the Classycle configuration more idiomatic

by replacing the configuration function useClassycle() as extra project

property with a plugins {} block plugin request and a project extension.

The classycle extension has two properties, one for the excludes defined

per project, the other one to reference the report resources zip.

This change will make configuring classycle from Kotlin DSL scripts


Introduce kotlin-dsl-upstream.kt in buildSrc org.gradle.kotlin.dsl

package for members missing from the Gradle Kotlin DSL intended to be

pulled upstream into the next Gradle Kotlin DSL release.

A sole extension added: reified ObjectFactory.listProperty()

Signed-off-by: Paul Merlin <>

  1. … 54 more files in changeset.
Some fixed to `DefaultExecHandle` to ensure listeners are notified before `waitForFinish()` completes and that exceptions thrown by the listeners are handled and forwarded to the waiting thread.

  1. … 2 more files in changeset.
Changed process execution infrastructure so that it no longer creates 2 threads to forward content to the process' stdin when there is nothing to forward (which is the default).

  1. … 14 more files in changeset.
Changed the process forking infrastructure so that it attempts to reuse threads rather than creating 3 or more threads per process that is forked.

There is now a global `ExecFactory` service that manages the infrastructure, including a pool of threads. It provides various factory methods to create instances of `ExecHandleBuilder`, `ExecAction`, `JavaExecHandleBuilder` and `JavaExecAction` backed by this infrastructure.

Replaced all direct instantiation of these types with usages of these factory methods.

  1. … 43 more files in changeset.
Favour declarative plugin application in build scripts

  1. … 26 more files in changeset.
Immediately stop thread if when process finishes

  1. … 7 more files in changeset.
Copy under lock, iterate out of lock

Fix `ConcurrentModificationException`

This commit adds guards around `holder` to make sure the list is not modified concurrently.

This fixes #2452, which was seen under heavy load.

Replace usages of org.gradle.api.Nullable

With javax.annotation.Nullable.

  1. … 460 more files in changeset.
Simplify executor relationships

  1. … 46 more files in changeset.
Delay memory info until first interval has passed

Add missing type safe collections setters on *ForkOptions & *ExecSpec

  1. … 10 more files in changeset.
Fix NativeOsxAvailableMemory error handling

This fixes ApplyPluginIntegSpec that generates ProjectBuilder based

tests which in turn doesn’t have native integrations enabled.

Sample macOS system memory using native-platform instead of vm_stat

See #1270

  1. … 2 more files in changeset.
Changed a couple more projects to use `java-library` plugin. Also inject Groovy as a test compile dependency for all projects, and removed the declaration from various project's build files.

  1. … 33 more files in changeset.
Make Os/JvmMemoryInfo only provide snapshots

  1. … 3 more files in changeset.
process-services: properly cleanup DefaultMemoryManagerTest

process-services: properly cleanup DefaultMemoryManagerTest

Use an approximation for memory usage when it hasn't been reported

  1. … 5 more files in changeset.
Cleanup of memory interfaces

Removing unnecessary throws

Remove now unused MaximumHeapHelper

Less frequently used idle worker daemons memory based expiration

Less frequently used idle worker daemons are expired when available system memory gets below a threshold.

Expiration strategy is triggered both by memory sampling and when the build daemon is about to fork a new process, or a new worker daemon. It will attempt to free enough system memory to fit the new process below the threshold according to it's fork options.

This implementation does an approximation on the amount of memory held by worker daemons, using their max heap setting instead of their committed memory. This will be fixed in subsequent changes.

  1. … 17 more files in changeset.
Move min free memory threshold declaration into DefaultMemoryManager

So we use the same in both the build daemon and worker processes

and don’t repeat it in two places.

  1. … 2 more files in changeset.
Single ExecutorFactory.createScheduled() method

We only need fixed-size single-threaded scheduled executors.

Use such executors for build daemon gc health checks, expiration checks

and memory sampling.


  1. … 7 more files in changeset.