From ecbc40cf92496d52f0459d2aa5efcbdf3f07ec14 Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Wed, 19 Jul 2023 15:34:54 +0200 Subject: [PATCH] [mpp] Mark Kotlin12XMppDeprecation as FATAL Old MPP plugins are deprecated for a long time. It is time to report fatal error for such cases. Our stdlib still and kotlin-test still using them, so we cannot just completely remove them, but there is a way to suppress this error: kotlin.internal.mpp12x.deprecation.suppress=true Code for the old plugins (together with the remaining testsdata) will be completely removed once stdlib and kotlin-test migration completed. ETA: ~ 2.0-Mx #KT-60553 Verification Pending --- .../kotlin/gradle/MultiplatformGradleIT.kt | 28 +++++++++++++------ .../kapt2/mpp-kapt-presence/gradle.properties | 1 + .../gradle.properties | 1 + .../kotlin2JsModuleKind/gradle.properties | 1 + .../gradle.properties | 1 + .../kotlin2JsProject/gradle.properties | 1 + .../gradle.properties | 1 + .../gradle.properties | 1 + .../multiplatformProject/gradle.properties | 1 + .../sample-old-style-app/gradle.properties | 1 + .../diagnostics/KotlinToolingDiagnostics.kt | 4 +-- 11 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/mpp-kapt-presence/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsIrDtsGeneration/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsModuleKind/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProject/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProjectWithTests/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformMultipleCommonModules/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformProject/gradle.properties create mode 100644 libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-old-style-app/gradle.properties diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt index 1004feae7f3..0cd2410adc3 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MultiplatformGradleIT.kt @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.gradle.testbase.assertNoDiagnostic import org.jetbrains.kotlin.gradle.util.AGPVersion import org.jetbrains.kotlin.gradle.util.getFileByName import org.jetbrains.kotlin.gradle.util.modify +import org.jetbrains.kotlin.gradle.util.replaceText import org.jetbrains.kotlin.test.util.KtTestUtil import org.junit.Test import java.io.File @@ -43,11 +44,29 @@ class MultiplatformGradleIT : BaseGradleIT() { fun testMultiplatformCompile() { val project = Project("multiplatformProject") + project.setupWorkingDir() + + // remove the default suppression that was added for all other tests + project.projectDir.resolve("gradle.properties").replaceText("kotlin.internal.mpp12x.deprecation.suppress=true", "") + project.build("build") { - assertSuccessful() + assertFailed() assertHasDiagnostic(KotlinToolingDiagnostics.Kotlin12XMppDeprecation) + assertTasksNotExecuted( + ":lib:compileKotlinCommon", + ":lib:compileTestKotlinCommon", + ":libJvm:compileKotlin", + ":libJvm:compileTestKotlin", + ) + } + + project.projectDir.resolve("gradle.properties").appendText("\nkotlin.internal.mpp12x.deprecation.suppress=true") + project.build("build") { + assertSuccessful() + + assertNoDiagnostic(KotlinToolingDiagnostics.Kotlin12XMppDeprecation) assertTasksExecuted( ":lib:compileKotlinCommon", ":lib:compileTestKotlinCommon", @@ -59,13 +78,6 @@ class MultiplatformGradleIT : BaseGradleIT() { assertFileExists("libJvm/build/classes/kotlin/main/foo/PlatformClass.class") assertFileExists("libJvm/build/classes/kotlin/test/foo/PlatformTest.class") } - - project.projectDir.resolve("gradle.properties").appendText("\nkotlin.internal.mpp12x.deprecation.suppress=true") - project.build { - assertSuccessful() - - assertNoDiagnostic(KotlinToolingDiagnostics.Kotlin12XMppDeprecation) - } } @Test diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/mpp-kapt-presence/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/mpp-kapt-presence/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kapt2/mpp-kapt-presence/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsIrDtsGeneration/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsIrDtsGeneration/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsIrDtsGeneration/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsModuleKind/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsModuleKind/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsModuleKind/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsNoOutputFileProject/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProject/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProject/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProject/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProjectWithTests/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProjectWithTests/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/kotlin2JsProjectWithTests/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformMultipleCommonModules/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformMultipleCommonModules/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformMultipleCommonModules/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformProject/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformProject/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/multiplatformProject/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-old-style-app/gradle.properties b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-old-style-app/gradle.properties new file mode 100644 index 00000000000..777bcc3bbe1 --- /dev/null +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/resources/testProject/new-mpp-lib-and-app/sample-old-style-app/gradle.properties @@ -0,0 +1 @@ +kotlin.internal.mpp12x.deprecation.suppress=true \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt index efa81cc9d40..8515734162e 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/diagnostics/KotlinToolingDiagnostics.kt @@ -207,10 +207,10 @@ object KotlinToolingDiagnostics { ) } - object Kotlin12XMppDeprecation : ToolingDiagnosticFactory(WARNING) { + object Kotlin12XMppDeprecation : ToolingDiagnosticFactory(FATAL) { operator fun invoke() = build( """ - The 'org.jetbrains.kotlin.platform.*' plugins are deprecated and are no longer available since Kotlin 1.4. + The 'org.jetbrains.kotlin.platform.*' plugins are no longer available. Please migrate the project to the 'org.jetbrains.kotlin.multiplatform' plugin. See: https://kotlinlang.org/docs/reference/building-mpp-with-gradle.html """.trimIndent()