From 03df752e8e9448e83902db6958e47f4311d2fd1b Mon Sep 17 00:00:00 2001 From: Bingran Date: Wed, 17 Feb 2021 10:20:43 +0000 Subject: [PATCH] Update min supported gradle version to 6.1 This PR also updates the min agp version we test with because older agp versions are using gradle apis which doesn't exist in gradle 6.0+. GH PR: #4155 --- .../gradle/AbstractModelBuilderTest.java | 2 +- ...plePluginVersionGradleImportingTestCase.kt | 4 +-- .../AbstractKotlinAndroidGradleTests.kt | 19 ++--------- .../kotlin/gradle/BuildCacheRelocationIT.kt | 11 ++----- .../kotlin/gradle/GradleVersionRequired.kt | 2 +- .../jetbrains/kotlin/gradle/Kapt3AndroidIT.kt | 32 ++----------------- .../jetbrains/kotlin/gradle/KlibBasedMppIT.kt | 3 -- .../MppHighlightingTestDataWithGradleIT.kt | 2 +- .../gradle/model/KotlinAndroidExtensionIT.kt | 2 +- .../kotlin/gradle/model/KotlinProjectIT.kt | 2 +- .../kotlin/gradle/tasks/CleanDataTaskIT.kt | 5 --- .../kotlin/gradle/util/AGPVersion.kt | 4 --- .../js/MultiplePluginDeclarationDetector.kt | 6 +--- .../jetbrains/kotlin/gradle/tasks/Tasks.kt | 16 +++------- .../kotlin/gradle/utils/compatibiltiy.kt | 2 +- 15 files changed, 21 insertions(+), 91 deletions(-) diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/AbstractModelBuilderTest.java b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/AbstractModelBuilderTest.java index 4dffcf6e8e4..596bc884206 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/AbstractModelBuilderTest.java +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/AbstractModelBuilderTest.java @@ -49,7 +49,7 @@ import static org.junit.Assume.assumeThat; @RunWith(value = Parameterized.class) public abstract class AbstractModelBuilderTest { - public static final Object[][] SUPPORTED_GRADLE_VERSIONS = {{"4.9"}, {"5.6.4"}, {"6.5.1"}}; + public static final Object[][] SUPPORTED_GRADLE_VERSIONS = {{"4.9"}, {"5.6.4"}, {"6.1"}, {"6.5.1"}}; private static final Pattern TEST_METHOD_NAME_PATTERN = Pattern.compile("(.*)\\[(\\d*: with Gradle-.*)\\]"); diff --git a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt index 614d1bcd6fa..223663d669a 100644 --- a/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt +++ b/idea/idea-gradle/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/MultiplePluginVersionGradleImportingTestCase.kt @@ -16,8 +16,8 @@ import org.junit.runners.Parameterized import java.io.File import java.util.* -const val mppImportTestMinVersionForMaster = "6.0+" -const val legacyMppImportTestMinVersionForMaster = "5.3+" +const val mppImportTestMinVersionForMaster = "6.1+" +const val legacyMppImportTestMinVersionForMaster = "6.1+" abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTestCase() { @Rule diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt index 9153d40e970..fb5a48ac4de 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/AbstractKotlinAndroidGradleTests.kt @@ -6,24 +6,15 @@ import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.util.* import org.jetbrains.kotlin.test.util.KtTestUtil import org.junit.Assume -import org.junit.Ignore import org.junit.Test import java.io.File import kotlin.test.assertEquals import kotlin.test.assertTrue -open class KotlinAndroid33GradleIT : KotlinAndroid32GradleIT() { - override val androidGradlePluginVersion: AGPVersion - get() = AGPVersion.v3_3_2 -} - -open class KotlinAndroid36GradleIT : KotlinAndroid33GradleIT() { +open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v3_6_0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.AtLeast("6.1") - @Test fun testAndroidMppSourceSets(): Unit = with( Project("new-mpp-android-source-sets") @@ -460,13 +451,9 @@ open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() { } } -open class KotlinAndroid32GradleIT : KotlinAndroid3GradleIT() { +open class KotlinAndroid34GradleIT : KotlinAndroid3GradleIT() { override val androidGradlePluginVersion: AGPVersion - get() = AGPVersion.v3_2_0 - - //android build tool 28.0.3 use org.gradle.api.file.ProjectLayout#fileProperty(org.gradle.api.provider.Provider) that was deleted in gradle 6.0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.Until("5.6.4") + get() = AGPVersion.v3_4_1 @Test fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) { diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt index fe648cd1278..eb90706c999 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildCacheRelocationIT.kt @@ -26,14 +26,9 @@ import org.junit.runners.Parameterized import java.io.File import kotlin.test.assertEquals -private val DEFAULT_GRADLE_VERSION = GradleVersionRequired.AtLeast("5.6.4") - @RunWith(Parameterized::class) class BuildCacheRelocationIT : BaseGradleIT() { - override val defaultGradleVersion: GradleVersionRequired - get() = DEFAULT_GRADLE_VERSION - override fun defaultBuildOptions(): BuildOptions = super.defaultBuildOptions().copy( withBuildCache = true, @@ -53,7 +48,7 @@ class BuildCacheRelocationIT : BaseGradleIT() { val (firstProject, secondProject) = (0..1).map { id -> workingDir = workingDirs[id] - Project(projectName, directoryPrefix = projectDirectoryPrefix, gradleVersionRequirement = gradleVersionRequired).apply { + Project(projectName, directoryPrefix = projectDirectoryPrefix).apply { setupWorkingDir() initProject() prepareLocalBuildCache(localBuildCacheDirectory) @@ -101,7 +96,6 @@ class BuildCacheRelocationIT : BaseGradleIT() { val initProject: Project.() -> Unit = {}, val taskToExecute: Array, val withAnotherGradleHome: Boolean = false, - val gradleVersionRequired: GradleVersionRequired = DEFAULT_GRADLE_VERSION, val androidGradlePluginVersion: AGPVersion? = null ) { @@ -191,8 +185,7 @@ class BuildCacheRelocationIT : BaseGradleIT() { buildKtsApp.modify(::transformBuildScriptWithPluginsDsl) buildKtsLib.modify(::transformBuildScriptWithPluginsDsl) }, - withAnotherGradleHome = true, - gradleVersionRequired = GradleVersionRequired.FOR_MPP_SUPPORT + withAnotherGradleHome = true ), ).map { arrayOf(it) } } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleVersionRequired.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleVersionRequired.kt index 79d8a7a67c8..28d221df6f1 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleVersionRequired.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/GradleVersionRequired.kt @@ -22,7 +22,7 @@ import org.junit.Assume sealed class GradleVersionRequired(val minVersion: String, val maxVersion: String?) { companion object { - const val OLDEST_SUPPORTED = "5.3" + const val OLDEST_SUPPORTED = "6.1" val FOR_MPP_SUPPORT = AtLeast("6.1") } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt index 5427d326480..639ecf0d5b1 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kapt3AndroidIT.kt @@ -9,31 +9,14 @@ import org.junit.Ignore import org.junit.Test import java.io.File -class Kapt3WorkersAndroid32IT : Kapt3Android32IT() { +class Kapt3WorkersAndroid34IT : Kapt3Android34IT() { override fun kaptOptions(): KaptOptions = super.kaptOptions().copy(useWorkers = true) - - //android build tool 28.0.3 use org.gradle.api.file.ProjectLayout#fileProperty(org.gradle.api.provider.Provider) that was deleted in gradle 6.0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.Until("5.6.4") } -open class Kapt3Android32IT : Kapt3AndroidIT() { +open class Kapt3Android34IT : Kapt3AndroidIT() { override val androidGradlePluginVersion: AGPVersion - get() = AGPVersion.v3_2_0 - - //android build tool 28.0.3 use org.gradle.api.file.ProjectLayout#fileProperty(org.gradle.api.provider.Provider) that was deleted in gradle 6.0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.Until("5.6.4") -} - -open class Kapt3Android33IT : Kapt3AndroidIT() { - override val androidGradlePluginVersion: AGPVersion - get() = AGPVersion.v3_3_2 - - //android build tool 28.0.3 use org.gradle.api.file.ProjectLayout#fileProperty(org.gradle.api.provider.Provider) that was deleted in gradle 6.0 - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.Until("5.6.4") + get() = AGPVersion.v3_4_1 @Test fun testAndroidxNavigationSafeArgs() = with(Project("androidx-navigation-safe-args", directoryPrefix = "kapt2")) { @@ -84,15 +67,6 @@ open class Kapt3Android33IT : Kapt3AndroidIT() { } } -class Kapt3Android34IT : Kapt3AndroidIT() { - override val androidGradlePluginVersion: AGPVersion - get() = AGPVersion.v3_4_1 - - // there is a weird validation exception in testICWithAnonymousClasses with 5.0 todo: fix it - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.Until("5.4.1") -} - class Kapt3Android70IT : Kapt3AndroidIT() { override val androidGradlePluginVersion: AGPVersion get() = AGPVersion.v7_0_0 diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt index 089345bab9d..045231f49ce 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KlibBasedMppIT.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.konan.target.HostManager -import org.junit.Assume import java.io.File import java.util.zip.ZipFile import kotlin.test.Test @@ -15,8 +14,6 @@ import kotlin.test.assertFalse import kotlin.test.assertTrue class KlibBasedMppIT : BaseGradleIT() { - override val defaultGradleVersion = GradleVersionRequired.AtLeast("6.1") - companion object { private const val MODULE_GROUP = "com.example" } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppHighlightingTestDataWithGradleIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppHighlightingTestDataWithGradleIT.kt index 76414091c80..17ab26742b8 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppHighlightingTestDataWithGradleIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/MppHighlightingTestDataWithGradleIT.kt @@ -31,7 +31,7 @@ class MppHighlightingTestDataWithGradleIT : BaseGradleIT() { } } - private val project by lazy { Project("mpp-source-set-hierarchy-analysis", GradleVersionRequired.AtLeast("6.0")) } + private val project by lazy { Project("mpp-source-set-hierarchy-analysis") } private fun doTest(cliCompiler: CliCompiler) = with(project) { val expectedErrorsPerSourceSetName = sourceRoots.associate { sourceRoot -> diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt index b2506bb7f85..8225eb64a01 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinAndroidExtensionIT.kt @@ -17,7 +17,7 @@ import kotlin.test.assertTrue class KotlinAndroidExtensionIT : BaseGradleIT() { override fun defaultBuildOptions(): BuildOptions { return super.defaultBuildOptions().copy( - androidGradlePluginVersion = AGPVersion.v3_1_0, + androidGradlePluginVersion = AGPVersion.v3_4_1, androidHome = KtTestUtil.findAndroidSdk() ) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt index ccdca174a42..524b43beada 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/model/KotlinProjectIT.kt @@ -17,7 +17,7 @@ import kotlin.test.assertTrue class KotlinProjectIT : BaseGradleIT() { override fun defaultBuildOptions(): BuildOptions { return super.defaultBuildOptions().copy( - androidGradlePluginVersion = AGPVersion.v3_1_0, + androidGradlePluginVersion = AGPVersion.v3_4_1, androidHome = KtTestUtil.findAndroidSdk() ) } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTaskIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTaskIT.kt index 52743e8d225..7350fdcc9ce 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTaskIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/tasks/CleanDataTaskIT.kt @@ -6,16 +6,12 @@ package org.jetbrains.kotlin.gradle.tasks import org.jetbrains.kotlin.gradle.BaseGradleIT -import org.jetbrains.kotlin.gradle.GradleVersionRequired import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl import org.junit.Test class CleanDataTaskIT : BaseGradleIT() { - override val defaultGradleVersion: GradleVersionRequired - get() = GradleVersionRequired.AtLeast("6.1") - @Test fun testDownloadedFolderDeletion() { val project = transformProjectWithPluginsDsl("cleanTask") @@ -25,5 +21,4 @@ class CleanDataTaskIT : BaseGradleIT() { } } - } diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt index 0fba0bacefc..99a26874e14 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/util/AGPVersion.kt @@ -18,10 +18,6 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) { fun fromString(versionString: String): AGPVersion = AGPVersion(VersionNumber.parse(versionString)) - val v3_0_0 = fromString("3.0.0") - val v3_1_0 = fromString("3.1.0") - val v3_2_0 = fromString("3.2.0") - val v3_3_2 = fromString("3.3.2") val v3_4_1 = fromString("3.4.1") val v3_6_0 = fromString("3.6.0") val v4_1_0 = fromString("4.1.0-beta02") diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/MultiplePluginDeclarationDetector.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/MultiplePluginDeclarationDetector.kt index fe80845628b..d5239dc6555 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/MultiplePluginDeclarationDetector.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/MultiplePluginDeclarationDetector.kt @@ -43,11 +43,7 @@ private constructor() { val detector = MultiplePluginDeclarationDetector() instance = detector - if (isConfigurationCacheAvailable(gradle)) { - BuildFinishedListenerService.getInstance(gradle).onClose { instance = null } - } else { - gradle.buildFinished { instance = null } - } + BuildFinishedListenerService.getInstance(gradle).onClose { instance = null } return detector } diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index bbbc7c3137a..3d9b573c5d6 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -141,18 +141,10 @@ public class GradleCompileTaskProvider { sessionsDir = GradleCompilerRunner.sessionsDir(task.project) projectName = task.project.rootProject.name.normalizeForFlagFile() val modulesInfo = GradleCompilerRunner.buildModulesInfo(task.project.gradle) - buildModulesInfo = if (!isConfigurationCacheAvailable(task.project.gradle)) { - task.project.provider { - object : IncrementalModuleInfoProvider { - override val info = modulesInfo - } - } - } else { - task.project.gradle.sharedServices.registerIfAbsent( - IncrementalModuleInfoBuildService.getServiceName(), IncrementalModuleInfoBuildService::class.java - ) { - it.parameters.info.set(modulesInfo) - } + buildModulesInfo = task.project.gradle.sharedServices.registerIfAbsent( + IncrementalModuleInfoBuildService.getServiceName(), IncrementalModuleInfoBuildService::class.java + ) { + it.parameters.info.set(modulesInfo) } path = task.path logger = task.logger diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/compatibiltiy.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/compatibiltiy.kt index e5c3b7c8a5a..b467ebbe879 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/compatibiltiy.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/utils/compatibiltiy.kt @@ -31,7 +31,7 @@ import org.gradle.api.tasks.bundling.AbstractArchiveTask import org.gradle.util.GradleVersion import java.io.File -const val minSupportedGradleVersion = "5.3" +const val minSupportedGradleVersion = "6.1" internal val Task.inputsCompatible: TaskInputs get() = inputs