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
This commit is contained in:
Bingran
2021-02-17 10:20:43 +00:00
committed by TeamCityServer
parent 9bdfbc948c
commit 03df752e8e
15 changed files with 21 additions and 91 deletions
@@ -49,7 +49,7 @@ import static org.junit.Assume.assumeThat;
@RunWith(value = Parameterized.class) @RunWith(value = Parameterized.class)
public abstract class AbstractModelBuilderTest { 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-.*)\\]"); private static final Pattern TEST_METHOD_NAME_PATTERN = Pattern.compile("(.*)\\[(\\d*: with Gradle-.*)\\]");
@@ -16,8 +16,8 @@ import org.junit.runners.Parameterized
import java.io.File import java.io.File
import java.util.* import java.util.*
const val mppImportTestMinVersionForMaster = "6.0+" const val mppImportTestMinVersionForMaster = "6.1+"
const val legacyMppImportTestMinVersionForMaster = "5.3+" const val legacyMppImportTestMinVersionForMaster = "6.1+"
abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTestCase() { abstract class MultiplePluginVersionGradleImportingTestCase : GradleImportingTestCase() {
@Rule @Rule
@@ -6,24 +6,15 @@ import org.gradle.util.GradleVersion
import org.jetbrains.kotlin.gradle.util.* import org.jetbrains.kotlin.gradle.util.*
import org.jetbrains.kotlin.test.util.KtTestUtil import org.jetbrains.kotlin.test.util.KtTestUtil
import org.junit.Assume import org.junit.Assume
import org.junit.Ignore
import org.junit.Test import org.junit.Test
import java.io.File import java.io.File
import kotlin.test.assertEquals import kotlin.test.assertEquals
import kotlin.test.assertTrue import kotlin.test.assertTrue
open class KotlinAndroid33GradleIT : KotlinAndroid32GradleIT() { open class KotlinAndroid36GradleIT : KotlinAndroid34GradleIT() {
override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_3_2
}
open class KotlinAndroid36GradleIT : KotlinAndroid33GradleIT() {
override val androidGradlePluginVersion: AGPVersion override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_6_0 get() = AGPVersion.v3_6_0
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.1")
@Test @Test
fun testAndroidMppSourceSets(): Unit = with( fun testAndroidMppSourceSets(): Unit = with(
Project("new-mpp-android-source-sets") 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 override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_2_0 get() = AGPVersion.v3_4_1
//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")
@Test @Test
fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) { fun testKaptUsingApOptionProvidersAsNestedInputOutput() = with(Project("AndroidProject")) {
@@ -26,14 +26,9 @@ import org.junit.runners.Parameterized
import java.io.File import java.io.File
import kotlin.test.assertEquals import kotlin.test.assertEquals
private val DEFAULT_GRADLE_VERSION = GradleVersionRequired.AtLeast("5.6.4")
@RunWith(Parameterized::class) @RunWith(Parameterized::class)
class BuildCacheRelocationIT : BaseGradleIT() { class BuildCacheRelocationIT : BaseGradleIT() {
override val defaultGradleVersion: GradleVersionRequired
get() = DEFAULT_GRADLE_VERSION
override fun defaultBuildOptions(): BuildOptions = override fun defaultBuildOptions(): BuildOptions =
super.defaultBuildOptions().copy( super.defaultBuildOptions().copy(
withBuildCache = true, withBuildCache = true,
@@ -53,7 +48,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
val (firstProject, secondProject) = (0..1).map { id -> val (firstProject, secondProject) = (0..1).map { id ->
workingDir = workingDirs[id] workingDir = workingDirs[id]
Project(projectName, directoryPrefix = projectDirectoryPrefix, gradleVersionRequirement = gradleVersionRequired).apply { Project(projectName, directoryPrefix = projectDirectoryPrefix).apply {
setupWorkingDir() setupWorkingDir()
initProject() initProject()
prepareLocalBuildCache(localBuildCacheDirectory) prepareLocalBuildCache(localBuildCacheDirectory)
@@ -101,7 +96,6 @@ class BuildCacheRelocationIT : BaseGradleIT() {
val initProject: Project.() -> Unit = {}, val initProject: Project.() -> Unit = {},
val taskToExecute: Array<String>, val taskToExecute: Array<String>,
val withAnotherGradleHome: Boolean = false, val withAnotherGradleHome: Boolean = false,
val gradleVersionRequired: GradleVersionRequired = DEFAULT_GRADLE_VERSION,
val androidGradlePluginVersion: AGPVersion? = null val androidGradlePluginVersion: AGPVersion? = null
) { ) {
@@ -191,8 +185,7 @@ class BuildCacheRelocationIT : BaseGradleIT() {
buildKtsApp.modify(::transformBuildScriptWithPluginsDsl) buildKtsApp.modify(::transformBuildScriptWithPluginsDsl)
buildKtsLib.modify(::transformBuildScriptWithPluginsDsl) buildKtsLib.modify(::transformBuildScriptWithPluginsDsl)
}, },
withAnotherGradleHome = true, withAnotherGradleHome = true
gradleVersionRequired = GradleVersionRequired.FOR_MPP_SUPPORT
), ),
).map { arrayOf(it) } ).map { arrayOf(it) }
} }
@@ -22,7 +22,7 @@ import org.junit.Assume
sealed class GradleVersionRequired(val minVersion: String, val maxVersion: String?) { sealed class GradleVersionRequired(val minVersion: String, val maxVersion: String?) {
companion object { companion object {
const val OLDEST_SUPPORTED = "5.3" const val OLDEST_SUPPORTED = "6.1"
val FOR_MPP_SUPPORT = AtLeast("6.1") val FOR_MPP_SUPPORT = AtLeast("6.1")
} }
@@ -9,31 +9,14 @@ import org.junit.Ignore
import org.junit.Test import org.junit.Test
import java.io.File import java.io.File
class Kapt3WorkersAndroid32IT : Kapt3Android32IT() { class Kapt3WorkersAndroid34IT : Kapt3Android34IT() {
override fun kaptOptions(): KaptOptions = override fun kaptOptions(): KaptOptions =
super.kaptOptions().copy(useWorkers = true) 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 override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v3_2_0 get() = AGPVersion.v3_4_1
//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")
@Test @Test
fun testAndroidxNavigationSafeArgs() = with(Project("androidx-navigation-safe-args", directoryPrefix = "kapt2")) { 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() { class Kapt3Android70IT : Kapt3AndroidIT() {
override val androidGradlePluginVersion: AGPVersion override val androidGradlePluginVersion: AGPVersion
get() = AGPVersion.v7_0_0 get() = AGPVersion.v7_0_0
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.util.modify import org.jetbrains.kotlin.gradle.util.modify
import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.HostManager
import org.junit.Assume
import java.io.File import java.io.File
import java.util.zip.ZipFile import java.util.zip.ZipFile
import kotlin.test.Test import kotlin.test.Test
@@ -15,8 +14,6 @@ import kotlin.test.assertFalse
import kotlin.test.assertTrue import kotlin.test.assertTrue
class KlibBasedMppIT : BaseGradleIT() { class KlibBasedMppIT : BaseGradleIT() {
override val defaultGradleVersion = GradleVersionRequired.AtLeast("6.1")
companion object { companion object {
private const val MODULE_GROUP = "com.example" private const val MODULE_GROUP = "com.example"
} }
@@ -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) { private fun doTest(cliCompiler: CliCompiler) = with(project) {
val expectedErrorsPerSourceSetName = sourceRoots.associate { sourceRoot -> val expectedErrorsPerSourceSetName = sourceRoots.associate { sourceRoot ->
@@ -17,7 +17,7 @@ import kotlin.test.assertTrue
class KotlinAndroidExtensionIT : BaseGradleIT() { class KotlinAndroidExtensionIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy( return super.defaultBuildOptions().copy(
androidGradlePluginVersion = AGPVersion.v3_1_0, androidGradlePluginVersion = AGPVersion.v3_4_1,
androidHome = KtTestUtil.findAndroidSdk() androidHome = KtTestUtil.findAndroidSdk()
) )
} }
@@ -17,7 +17,7 @@ import kotlin.test.assertTrue
class KotlinProjectIT : BaseGradleIT() { class KotlinProjectIT : BaseGradleIT() {
override fun defaultBuildOptions(): BuildOptions { override fun defaultBuildOptions(): BuildOptions {
return super.defaultBuildOptions().copy( return super.defaultBuildOptions().copy(
androidGradlePluginVersion = AGPVersion.v3_1_0, androidGradlePluginVersion = AGPVersion.v3_4_1,
androidHome = KtTestUtil.findAndroidSdk() androidHome = KtTestUtil.findAndroidSdk()
) )
} }
@@ -6,16 +6,12 @@
package org.jetbrains.kotlin.gradle.tasks package org.jetbrains.kotlin.gradle.tasks
import org.jetbrains.kotlin.gradle.BaseGradleIT import org.jetbrains.kotlin.gradle.BaseGradleIT
import org.jetbrains.kotlin.gradle.GradleVersionRequired
import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl import org.jetbrains.kotlin.gradle.transformProjectWithPluginsDsl
import org.junit.Test import org.junit.Test
class CleanDataTaskIT : BaseGradleIT() { class CleanDataTaskIT : BaseGradleIT() {
override val defaultGradleVersion: GradleVersionRequired
get() = GradleVersionRequired.AtLeast("6.1")
@Test @Test
fun testDownloadedFolderDeletion() { fun testDownloadedFolderDeletion() {
val project = transformProjectWithPluginsDsl("cleanTask") val project = transformProjectWithPluginsDsl("cleanTask")
@@ -25,5 +21,4 @@ class CleanDataTaskIT : BaseGradleIT() {
} }
} }
} }
@@ -18,10 +18,6 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) {
fun fromString(versionString: String): AGPVersion = fun fromString(versionString: String): AGPVersion =
AGPVersion(VersionNumber.parse(versionString)) 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_4_1 = fromString("3.4.1")
val v3_6_0 = fromString("3.6.0") val v3_6_0 = fromString("3.6.0")
val v4_1_0 = fromString("4.1.0-beta02") val v4_1_0 = fromString("4.1.0-beta02")
@@ -43,11 +43,7 @@ private constructor() {
val detector = MultiplePluginDeclarationDetector() val detector = MultiplePluginDeclarationDetector()
instance = detector instance = detector
if (isConfigurationCacheAvailable(gradle)) { BuildFinishedListenerService.getInstance(gradle).onClose { instance = null }
BuildFinishedListenerService.getInstance(gradle).onClose { instance = null }
} else {
gradle.buildFinished { instance = null }
}
return detector return detector
} }
@@ -141,18 +141,10 @@ public class GradleCompileTaskProvider {
sessionsDir = GradleCompilerRunner.sessionsDir(task.project) sessionsDir = GradleCompilerRunner.sessionsDir(task.project)
projectName = task.project.rootProject.name.normalizeForFlagFile() projectName = task.project.rootProject.name.normalizeForFlagFile()
val modulesInfo = GradleCompilerRunner.buildModulesInfo(task.project.gradle) val modulesInfo = GradleCompilerRunner.buildModulesInfo(task.project.gradle)
buildModulesInfo = if (!isConfigurationCacheAvailable(task.project.gradle)) { buildModulesInfo = task.project.gradle.sharedServices.registerIfAbsent(
task.project.provider { IncrementalModuleInfoBuildService.getServiceName(), IncrementalModuleInfoBuildService::class.java
object : IncrementalModuleInfoProvider { ) {
override val info = modulesInfo it.parameters.info.set(modulesInfo)
}
}
} else {
task.project.gradle.sharedServices.registerIfAbsent(
IncrementalModuleInfoBuildService.getServiceName(), IncrementalModuleInfoBuildService::class.java
) {
it.parameters.info.set(modulesInfo)
}
} }
path = task.path path = task.path
logger = task.logger logger = task.logger
@@ -31,7 +31,7 @@ import org.gradle.api.tasks.bundling.AbstractArchiveTask
import org.gradle.util.GradleVersion import org.gradle.util.GradleVersion
import java.io.File import java.io.File
const val minSupportedGradleVersion = "5.3" const val minSupportedGradleVersion = "6.1"
internal val Task.inputsCompatible: TaskInputs get() = inputs internal val Task.inputsCompatible: TaskInputs get() = inputs