Clone Tools
  • last updated a few seconds ago
Constraints: committers
Constraints: files
Constraints: dates
Consistently use camel case

  1. … 89 more files in changeset.
Move dependency declarations

- Coordinates go into final fields of the 'libs' extension

- Versions are defined in the platform

- The platform is used everywhere

Note: We now published the 'resolved versions' for the modules we

also publish independently. This should give the same result as

before, where we explicitly declared a 'required' version that would

correspond to the resolved version.

  1. … 116 more files in changeset.
Use id("...") syntax to apply build logic plugins

This works with 'buildSrc' and 'included build' plugins.

It is a preparation for moving the build logic to included builds.

  1. … 113 more files in changeset.
Turn 'integration-teesting' plugins into pre-compiled script plugins

And move everything to the common 'gradlebuild' package.

  1. … 45 more files in changeset.
Disallow serializing `TaskDependency` instances to the configuration cache.

  1. … 1 more file in changeset.
Introduce GradleDistributionsPlugin and multiple distribution projects

We can now have different distributions, containing different sets of

jars/functionality. For this, one subproject per distribution type is

created. Initially we introduce:

- _core_ (absolute minimum needed to run Gradle)

- _basics_ (Basic functionalities on top of core)

- _jvm_ (Everything needed for JVM ecosystem support)

- _native_ (everything for Native support)

- _publishing_ (everything to publish to Maven/Ivy repositories)

This is just an initial structure which we can now easily change. The

main point here is to enable a setup like this at all. New/different

distributions can now simply be added by adding a new subproject that

applies `gradlebuild.distribution.packaging` and defines the content of

the distribution in terms of dependencies.

Projects needing a distribution for testing, then depend on that project

e.g. `integTestDistributionRuntimeOnly(project(":distributionsJvm"))`

While introducing this, a lot of changes/improvements are done.

(See also previous commits and documentation in code.) Some major things:

- The embedded test runner now no longer supports running against a full

distribution as fallback. This has the advantage that we do not need to

assemble the distribution in embedded running, where the huge majority

of tests does not need it. To allow more tests still to run embedded,

the embedded support with TestKit/KotlinDSL involvement has been

improved. Some tests won't run with the embedded runner at all

now, but compared to the overall amount of tests, these are just a few.

And the "forking" tests always run as part of the PR pipeline.

- Cacheability of tests is highly improved. We broke some things

recently when adding inputs for distributed testing.

These regressions are addressed. Other things were

improved along the line (local Tooling API repo no longer uses timestamp

version, local bin distribution without timestamp for wrapper tests,

sample tests no longer rely on absolute path and timestamp version, ...)

- The `docs.jar` is no longer part of the distribution. It almost had no

content and what it had was runtime metadata and not documentation.

Instead, a distribution project now encapsulates all the runtime

metadata creation and produces a `runtime-api-info.jar` that is specific

to the distribution.

- In the past we had flakiness issues causes by different distributions

sharing the same user home/daemon registry. With the fixed set of

distributions defined, we now use different user home/daemon registry

for each distribution.

- Cross-project configurations are removed. There was some code

central to distribution building and runtime metadata generation that

reached into all subprojects. This is now replaced by using proper

variant aware dependency management to share artifacts between

distribution subprojects and the other subprojects.

  1. … 189 more files in changeset.
Never execute a real Gradle distribution in embedded test mode

This will become unsupported such that we do not need to assemble

the distribution for embedded mode anymore. The tests that

are affected by this were checked and are adjusted:

- If the test can run embedded, the restriction that the test requires

a distribution is removed. This is the case for some older tests

that were not checked for a long time and tests that involve TestKit

or KotlinDSL, for which the embedded support is improved in the next


- If the test only requires a forked process, but not a complete

distribution, it can run a new process based on the current

classpath using 'requiresDaemon().requiresIsolatedDaemon()'.

- If the test needs a real distribution, it is ignored in embedded mode.

  1. … 105 more files in changeset.
Add inputs for sample tests (#13153)

Some tests depend on sample directories (for example this one but didn't mark them as inputs. This breaks distributed test.

  1. … 20 more files in changeset.
Fix codenarc

Use --passphrase-fd to supply passphrase to gpg2

  1. … 1 more file in changeset.
Increase logging level to try to catch more details with flaky test failure

Fix more failing tests

  1. … 1 more file in changeset.
Address compiler warnings in 'signing' subproject

Apply the 'classycle' plugin consistently to all projects (#12849)

Existing cycles are now explicitly excluded in the corresponding

build scripts and are thus more visible. They may or may not be

improved on when working on the corresponding project.

  1. … 89 more files in changeset.
Use plugins DSL in Javadoc code snippets

  1. … 47 more files in changeset.
Clean up subproject grouping in gradle build

  1. … 143 more files in changeset.
Restore `@ToBeFixedForInstantExecution` for `SigningTasksWithGpgCmdIntegrationSpec`

Remove `@ToBeFixedForInstantExecution` from `SigningTasksIntegrationSpec`

Disable GMM publication if custom pattern is used

This commit works around issue #12339 by disabling publication

of Gradle Module Metadata if using a non standard Ivy repository


  1. … 6 more files in changeset.
Remove always-true KOTLIN_SCRIPT test precondition

  1. … 43 more files in changeset.
Replace several usages of direct `FileCollection` implementation instantiation with a factory method. Attempt to use the public API when the usage lives in a plugin.

  1. … 18 more files in changeset.
Remove limitation on snapshot signing

Now that there is no more attempt to tweak the content of the Gradle

Module Metadata file, there is no reason to prevent signing of Maven


Fixes #12070

Fix Gradle Module Metadata referencing stale files

If a file is not published, then it shouldn't appear in GMM.

  1. … 3 more files in changeset.
Mark test `@ToBeFixedForInstantExecution`

Do not publish stale signature files

This commit fixes the publication of stale signature files:

prior to this change it was possible that a signature generated

in a previous build for a different artifact was uploaded even

if no signature was generated during the build, which would

lead to inconsistent publications.

In addition, it makes it an error to publish something which

doesn't have the main artifact created (or, at least up-to-date)

in this build. In other words, if the task which generates the

main artifact is disabled, it's an error to publish.

Other stale artifacts are going to be ignored.

Fixes #5136

  1. … 35 more files in changeset.
Revert "Remove sourceJar task in favor of sourcesJar (plural)"

This reverts commit a965be46

  1. … 8 more files in changeset.
Remove sourceJar task in favor of sourcesJar (plural)

  1. … 10 more files in changeset.
Split the `signing` module

This commit splits the `signing` module into another `security`

project so that we can reuse some code for dependency verification.

It's worth noting that some of the classes had to remain in the `plugins`

package because they were public APIs.

Further effort to split them out may be done later.

  1. … 58 more files in changeset.
Rename @FailsWithInstantExecution to @ToBeFixedForInstantExecution

Signed-off-by: Paul Merlin <>

  1. … 866 more files in changeset.
Annotate integ tests failing with instant execution in various projects

after third round of CI feedback

much better, no more OOMEs, no more hung builds, no more console

replacement weirdness

Signed-off-by: Paul Merlin <>

  1. … 37 more files in changeset.