diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml
index 3ffbf5d92ca..97a4b4b3aa9 100644
--- a/gradle/verification-metadata.xml
+++ b/gradle/verification-metadata.xml
@@ -1522,6 +1522,12 @@
+
+
+
+
+
+
diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt
index 3dc2b082f23..b90bcdfb238 100644
--- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt
+++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/SimpleKotlinGradleIT.kt
@@ -205,6 +205,7 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
@DisplayName("Proper Gradle plugin variant is used")
@GradleTestVersions(
+ maxVersion = TestVersions.Gradle.G_8_2,
additionalVersions = [
TestVersions.Gradle.G_7_0,
TestVersions.Gradle.G_7_1,
@@ -213,6 +214,8 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
TestVersions.Gradle.G_7_5,
TestVersions.Gradle.G_7_6,
TestVersions.Gradle.G_8_0,
+ TestVersions.Gradle.G_8_1,
+ TestVersions.Gradle.G_8_2,
],
)
@GradleTest
@@ -220,7 +223,8 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
project("kotlinProject", gradleVersion) {
build("help") {
val expectedVariant = when (gradleVersion) {
- in GradleVersion.version(TestVersions.Gradle.G_8_1)..GradleVersion.version(TestVersions.Gradle.G_8_2) -> "gradle81"
+ GradleVersion.version(TestVersions.Gradle.G_8_2) -> "gradle82"
+ GradleVersion.version(TestVersions.Gradle.G_8_1) -> "gradle81"
GradleVersion.version(TestVersions.Gradle.G_8_0) -> "gradle80"
GradleVersion.version(TestVersions.Gradle.G_7_6) -> "gradle76"
GradleVersion.version(TestVersions.Gradle.G_7_5) -> "gradle75"
@@ -322,7 +326,6 @@ class SimpleKotlinGradleIT : KGPBaseTest() {
}
}
- @Disabled
@DisplayName("KT-63499: source sets conventions are not registered since Gradle 8.2")
@GradleTestVersions(minVersion = TestVersions.Gradle.G_8_2)
@GradleTest
diff --git a/libraries/tools/kotlin-gradle-plugin/src/gradle82/kotlin/org/jetbrains/kotlin/gradle/plugin/PluginWrappers.kt b/libraries/tools/kotlin-gradle-plugin/src/gradle82/kotlin/org/jetbrains/kotlin/gradle/plugin/PluginWrappers.kt
new file mode 100644
index 00000000000..febf83fa7e3
--- /dev/null
+++ b/libraries/tools/kotlin-gradle-plugin/src/gradle82/kotlin/org/jetbrains/kotlin/gradle/plugin/PluginWrappers.kt
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
+ * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
+ */
+
+package org.jetbrains.kotlin.gradle.plugin
+
+import com.android.build.gradle.BaseExtension
+import org.gradle.api.Named
+import org.gradle.api.NamedDomainObjectContainer
+import org.gradle.api.Project
+import org.gradle.api.file.SourceDirectorySet
+import org.gradle.api.model.ObjectFactory
+import org.gradle.tooling.provider.model.ToolingModelBuilderRegistry
+import javax.inject.Inject
+
+private const val PLUGIN_VARIANT_NAME = "gradle82"
+
+open class KotlinPluginWrapper @Inject constructor(
+ registry: ToolingModelBuilderRegistry
+) : AbstractKotlinPluginWrapper(registry) {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+open class KotlinCommonPluginWrapper @Inject constructor(
+ registry: ToolingModelBuilderRegistry
+) : AbstractKotlinCommonPluginWrapper(registry) {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+open class KotlinAndroidPluginWrapper @Inject constructor(
+ registry: ToolingModelBuilderRegistry
+) : AbstractKotlinAndroidPluginWrapper(registry) {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+@Suppress("DEPRECATION_ERROR")
+open class Kotlin2JsPluginWrapper @Inject constructor(
+ registry: ToolingModelBuilderRegistry
+) : AbstractKotlin2JsPluginWrapper(registry) {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+open class KotlinMultiplatformPluginWrapper : AbstractKotlinMultiplatformPluginWrapper() {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+open class KotlinJsPluginWrapper : AbstractKotlinJsPluginWrapper() {
+
+ override val pluginVariant: String = PLUGIN_VARIANT_NAME
+
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+open class KotlinPlatformJvmPlugin : KotlinPlatformImplementationPluginBase("jvm") {
+ override fun apply(project: Project) {
+ project.applyPlugin()
+ super.apply(project)
+ }
+}
+
+open class KotlinPlatformJsPlugin : KotlinPlatformImplementationPluginBase("js") {
+ override fun apply(project: Project) {
+ @Suppress("DEPRECATION_ERROR")
+ project.applyPlugin()
+ super.apply(project)
+ }
+}
+
+open class KotlinPlatformAndroidPlugin : KotlinPlatformImplementationPluginBase("android") {
+ override fun apply(project: Project) {
+ project.applyPlugin()
+ super.apply(project)
+ }
+
+ override fun namedSourceSetsContainer(project: Project): NamedDomainObjectContainer<*> =
+ (project.extensions.getByName("android") as BaseExtension).sourceSets
+
+ override fun addCommonSourceSetToPlatformSourceSet(commonSourceSet: Named, platformProject: Project) {
+ val androidExtension = platformProject.extensions.getByName("android") as BaseExtension
+ val androidSourceSet = androidExtension.sourceSets.findByName(commonSourceSet.name) ?: return
+ val kotlinSourceSet = androidSourceSet.getExtension(KOTLIN_DSL_NAME)
+ ?: return
+ kotlinSourceSet.source(getKotlinSourceDirectorySetSafe(commonSourceSet)!!)
+ }
+}
+
+open class KotlinPlatformCommonPlugin : KotlinPlatformPluginBase("common") {
+ override fun apply(project: Project) {
+ project.applyPlugin()
+ warnAboutKotlin12xMppDeprecation(project)
+ }
+}
+
+open class KotlinApiPlugin : KotlinBaseApiPlugin() {
+ override fun apply(project: Project) {
+ project.registerVariantImplementations()
+ super.apply(project)
+ }
+}
+
+@Suppress("UnusedReceiverParameter")
+private fun Project.registerVariantImplementations() {
+
+}
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/atomicfu/atomicfu.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/atomicfu/atomicfu.pom
index 0aa5d102a15..c6aa6f58706 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/atomicfu/atomicfu.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/atomicfu/atomicfu.pom
@@ -305,5 +305,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-allopen/kotlin-allopen.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-allopen/kotlin-allopen.pom
index 168913a21ad..9e90a171182 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-allopen/kotlin-allopen.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-allopen/kotlin-allopen.pom
@@ -337,5 +337,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-assignment/kotlin-assignment.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-assignment/kotlin-assignment.pom
index 3f0b11c2992..ea88c118b4a 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-assignment/kotlin-assignment.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-assignment/kotlin-assignment.pom
@@ -337,5 +337,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-model/kotlin-gradle-plugin-model.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-model/kotlin-gradle-plugin-model.pom
index 2b1f2f8e7e3..6eba149ecaa 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-model/kotlin-gradle-plugin-model.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-gradle-plugin-model/kotlin-gradle-plugin-model.pom
@@ -305,5 +305,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-lombok/kotlin-lombok.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-lombok/kotlin-lombok.pom
index 6699b40f8bc..b6f80f8f768 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-lombok/kotlin-lombok.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-lombok/kotlin-lombok.pom
@@ -337,5 +337,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-noarg/kotlin-noarg.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-noarg/kotlin-noarg.pom
index 293fa1e505b..f4d4ed44642 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-noarg/kotlin-noarg.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-noarg/kotlin-noarg.pom
@@ -337,5 +337,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-sam-with-receiver/kotlin-sam-with-receiver.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-sam-with-receiver/kotlin-sam-with-receiver.pom
index 40fbdfc77a8..232b49a041b 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-sam-with-receiver/kotlin-sam-with-receiver.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-sam-with-receiver/kotlin-sam-with-receiver.pom
@@ -337,5 +337,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-serialization/kotlin-serialization.pom b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-serialization/kotlin-serialization.pom
index ce9d0ea6ebe..363debfab11 100644
--- a/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-serialization/kotlin-serialization.pom
+++ b/repo/artifacts-tests/src/test/resources/org/jetbrains/kotlin/kotlin-serialization/kotlin-serialization.pom
@@ -305,5 +305,38 @@
true
+
+ org.jetbrains.kotlin
+ kotlin-gradle-plugin-api
+ ArtifactsTest.version
+ compile
+
+
+ kotlin-reflect
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk8
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-jdk7
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib
+ org.jetbrains.kotlin
+
+
+ kotlin-script-runtime
+ org.jetbrains.kotlin
+
+
+ kotlin-stdlib-common
+ org.jetbrains.kotlin
+
+
+ true
+
diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/GradleCommon.kt b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/GradleCommon.kt
index 0e466ae3f1c..96460d9339e 100644
--- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/GradleCommon.kt
+++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/GradleCommon.kt
@@ -61,6 +61,7 @@ enum class GradlePluginVariant(
GRADLE_76("gradle76", "7.6", "7.6", "https://docs.gradle.org/7.6.1/javadoc/"),
GRADLE_80("gradle80", "8.0", "8.0", "https://docs.gradle.org/8.0.2/javadoc/"),
GRADLE_81("gradle81", "8.1", "8.1", "https://docs.gradle.org/8.1.1/javadoc/"),
+ GRADLE_82("gradle82", "8.2", "8.2", "https://docs.gradle.org/8.2.1/javadoc/"),
}
val commonSourceSetName = "common"
@@ -774,7 +775,8 @@ fun Project.configureDokkaPublication(
private fun GradleExternalDocumentationLinkBuilder.addWorkaroundForElementList(pluginVariant: GradlePluginVariant) {
if (pluginVariant == GradlePluginVariant.GRADLE_76 ||
pluginVariant == GradlePluginVariant.GRADLE_80 ||
- pluginVariant == GradlePluginVariant.GRADLE_81
+ pluginVariant == GradlePluginVariant.GRADLE_81 ||
+ pluginVariant == GradlePluginVariant.GRADLE_82
) {
packageListUrl.set(URL("${pluginVariant.gradleApiJavadocUrl}element-list"))
}
diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts
index 0437d06d190..acfac1ba660 100644
--- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts
+++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-common-configuration.gradle.kts
@@ -110,4 +110,11 @@ if (!kotlinBuildProperties.isInJpsBuildIdeaSync) {
commonSourceSet = commonSourceSet
)
publishShadowedJar(gradle81SourceSet, commonSourceSet)
+
+ // Used for Gradle 8.2+ versions
+ val gradle82SourceSet = createGradlePluginVariant(
+ GradlePluginVariant.GRADLE_82,
+ commonSourceSet = commonSourceSet
+ )
+ publishShadowedJar(gradle82SourceSet, commonSourceSet)
}
diff --git a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts
index 8104f84a8b6..751a83d66a2 100644
--- a/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts
+++ b/repo/gradle-build-conventions/buildsrc-compat/src/main/kotlin/gradle-plugin-dependency-configuration.gradle.kts
@@ -69,6 +69,13 @@ createGradlePluginVariant(
isGradlePlugin = false
)
+// Used for Gradle 8.2+ versions
+createGradlePluginVariant(
+ GradlePluginVariant.GRADLE_82,
+ commonSourceSet = commonSourceSet,
+ isGradlePlugin = false
+)
+
publishing {
publications {
register(DEFAULT_MAIN_PUBLICATION_NAME) {