From 25abbd5ad6ce6cf4e12e805e1655fcbbf31871ed Mon Sep 17 00:00:00 2001 From: Alexander Bartash Date: Sun, 3 Aug 2025 13:38:29 +0300 Subject: [PATCH 1/5] Attempt to fix Gradle 9 compatibility #735 --- .../refreshVersions/core/RefreshVersionsCoreSetup.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt index 91ce37051..a0cbb5826 100644 --- a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt +++ b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt @@ -15,7 +15,6 @@ import de.fayard.refreshVersions.core.internal.setupVersionPlaceholdersResolving import org.gradle.api.artifacts.ExternalDependency import org.gradle.api.file.RegularFile import org.gradle.api.initialization.Settings -import org.gradle.api.internal.artifacts.dependencies.DefaultClientModule import org.gradle.kotlin.dsl.apply import org.gradle.tooling.UnsupportedVersionException import org.gradle.util.GradleVersion @@ -212,7 +211,7 @@ private fun setupPluginsVersionsResolution( val pluginVersion = requested.version ?: return@eachPlugin UsedPluginsTracker.pluginHasNoEntryInVersionsFile( settings = settings, - dependency = pluginIdToDependency(pluginId, pluginVersion) + dependency = pluginIdToDependency(settings, pluginId, pluginVersion) ) return@eachPlugin } @@ -248,5 +247,5 @@ internal fun pluginDependencyNotationToVersionKey(dependencyNotation: String): S else -> null } -internal fun pluginIdToDependency(pluginId: String, version: String): ExternalDependency = - DefaultClientModule(pluginId, "$pluginId.gradle.plugin", version) +internal fun pluginIdToDependency(settings: Settings, pluginId: String, version: String): ExternalDependency = + settings.gradle.rootProject.dependencies.create("$pluginId:$pluginId.gradle.plugin:$version") as ExternalDependency From 05ea14014fa7ac746c4d8dd96d59b45c49a39253 Mon Sep 17 00:00:00 2001 From: Louis CAD Date: Fri, 15 Aug 2025 13:04:10 +0200 Subject: [PATCH 2/5] Minor reformat: Put parameters on separate lines --- .../refreshVersions/core/RefreshVersionsCoreSetup.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt index a0cbb5826..171309428 100644 --- a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt +++ b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt @@ -247,5 +247,11 @@ internal fun pluginDependencyNotationToVersionKey(dependencyNotation: String): S else -> null } -internal fun pluginIdToDependency(settings: Settings, pluginId: String, version: String): ExternalDependency = - settings.gradle.rootProject.dependencies.create("$pluginId:$pluginId.gradle.plugin:$version") as ExternalDependency +internal fun pluginIdToDependency( + settings: Settings, + pluginId: String, + version: String +): ExternalDependency { + val dependencyNotation = "$pluginId:$pluginId.gradle.plugin:$version" + return settings.gradle.rootProject.dependencies.create(dependencyNotation) as ExternalDependency +} From e88334dc549da3671a47f6e2548d4a59c3289d67 Mon Sep 17 00:00:00 2001 From: Louis CAD Date: Fri, 15 Aug 2025 13:04:26 +0200 Subject: [PATCH 3/5] Use buildscript for pluginIdToDependency --- .../de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt index 171309428..c5ca43864 100644 --- a/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt +++ b/plugins/core/src/main/kotlin/de/fayard/refreshVersions/core/RefreshVersionsCoreSetup.kt @@ -253,5 +253,5 @@ internal fun pluginIdToDependency( version: String ): ExternalDependency { val dependencyNotation = "$pluginId:$pluginId.gradle.plugin:$version" - return settings.gradle.rootProject.dependencies.create(dependencyNotation) as ExternalDependency + return settings.gradle.rootProject.buildscript.dependencies.create(dependencyNotation) as ExternalDependency } From 590846ad82e20436a48205af39d11613f4bd249d Mon Sep 17 00:00:00 2001 From: Louis CAD Date: Fri, 15 Aug 2025 15:09:03 +0200 Subject: [PATCH 4/5] Make propertyOrEnvOrNull return null if the property is empty --- .../convention-plugins/src/main/kotlin/PropertyOrEnv.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/convention-plugins/src/main/kotlin/PropertyOrEnv.kt b/plugins/convention-plugins/src/main/kotlin/PropertyOrEnv.kt index 5bf2e76a0..8e1fe49ac 100644 --- a/plugins/convention-plugins/src/main/kotlin/PropertyOrEnv.kt +++ b/plugins/convention-plugins/src/main/kotlin/PropertyOrEnv.kt @@ -6,6 +6,10 @@ internal fun Project.propertyOrEnv(key: String): String { ?: error("Didn't find any value for the key \"$key\" in Project properties or environment variables.") } -internal fun Project.propertyOrEnvOrNull(key: String): String? { - return findProperty(key) as String? ?: System.getenv(key) +internal fun Project.propertyOrEnvOrNull( + key: String, + nullIfEmpty: Boolean = true +): String? { + return (findProperty(key) as String?)?.takeUnless { nullIfEmpty && it.isEmpty() } + ?: System.getenv(key)?.takeUnless { nullIfEmpty && it.isEmpty() } } From bb0267642fd8d00be6c517f8107571f1704e87b7 Mon Sep 17 00:00:00 2001 From: Louis CAD Date: Fri, 15 Aug 2025 15:26:06 +0200 Subject: [PATCH 5/5] Make signing not required --- .../convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts b/plugins/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts index 9802b9817..b6c5d96b3 100644 --- a/plugins/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts +++ b/plugins/convention-plugins/src/main/kotlin/gradle-plugin.gradle.kts @@ -4,6 +4,7 @@ plugins { } signing { + isRequired = false useInMemoryPgpKeys( propertyOrEnvOrNull("GPG_key_id"), propertyOrEnvOrNull("GPG_private_key") ?: return@signing,