Skip to content

Fix predeclare from buildscript in gradle 9.x#2929

Merged
nedtwigg merged 3 commits into
diffplug:mainfrom
bric3:predeclare-from-buildscript-gradle-9.x
May 14, 2026
Merged

Fix predeclare from buildscript in gradle 9.x#2929
nedtwigg merged 3 commits into
diffplug:mainfrom
bric3:predeclare-from-buildscript-gradle-9.x

Conversation

@bric3
Copy link
Copy Markdown
Contributor

@bric3 bric3 commented May 13, 2026

Gradle 9 rejects mutating the root buildscript configuration container during task execution. This breaks predeclareDepsFromBuildscript() because Spotless resolved formatter dependencies by calling ConfigurationContainer.create(...) from :spotlessInternalRegisterDependencies.

This commit makes spotless resolve the formatter dependencies with a detached configurations instead.

They are not added to the target configuration container, so they avoid the Gradle 9 mutation guard while still using the repositories from the same configuration context.

Also adds a Gradle 9.5.1 integration test for the legacy predeclareDepsFromBuildscript() path.

https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutating_buildscript_configurations

https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/ConfigurationContainer.html#detachedConfiguration-org.gradle.api.artifacts.Dependency...-

Fixes #2599

bric3 added 3 commits May 13, 2026 13:35
Gradle 9 rejects mutating the root `buildscript` configuration container
during task execution. This breaks `predeclareDepsFromBuildscript()`
because Spotless resolved formatter dependencies by calling
`ConfigurationContainer.create(...)` from
`:spotlessInternalRegisterDependencies`.

This commit makes spotless resolve the formatter dependencies with
a detached configurations instead.

They are not added to the target configuration container, so they avoid
the Gradle 9 mutation guard while still using the repositories from the
same configuration context.

Also adds a Gradle 9.5.1 integration test for the legacy
`predeclareDepsFromBuildscript()` path.

https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutating_buildscript_configurations

https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/ConfigurationContainer.html#detachedConfiguration-org.gradle.api.artifacts.Dependency...-

Fixes diffplug#2599
@nedtwigg nedtwigg merged commit ed86b24 into diffplug:main May 14, 2026
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gradle 9.0.0 incompatibility

2 participants