Bump minimal supported AGP to 4.1.3
^KT-53013 In Progress
This commit is contained in:
committed by
Space Team
parent
b01411544a
commit
faf3638c58
+4
-4
@@ -23,9 +23,9 @@ import kotlin.test.assertNotNull
|
||||
import kotlin.test.assertNull
|
||||
import kotlin.test.assertTrue
|
||||
|
||||
open class KotlinAndroid36GradleIT : KotlinAndroid3GradleIT() {
|
||||
open class KotlinAndroid41GradleIT : KotlinAndroid4GradleIT() {
|
||||
override val androidGradlePluginVersion: AGPVersion
|
||||
get() = AGPVersion.v3_6_0
|
||||
get() = AGPVersion.v4_1_0
|
||||
|
||||
// AGP 3.+ is not working well with Gradle 7+
|
||||
override val defaultGradleVersion: GradleVersionRequired
|
||||
@@ -603,7 +603,7 @@ open class KotlinAndroid36GradleIT : KotlinAndroid3GradleIT() {
|
||||
}
|
||||
}
|
||||
|
||||
open class KotlinAndroid70GradleIT : KotlinAndroid36GradleIT() {
|
||||
open class KotlinAndroid70GradleIT : KotlinAndroid41GradleIT() {
|
||||
override val androidGradlePluginVersion: AGPVersion
|
||||
get() = AGPVersion.v7_0_0
|
||||
|
||||
@@ -787,7 +787,7 @@ open class KotlinAndroid71GradleIT : KotlinAndroid70GradleIT() {
|
||||
}
|
||||
}
|
||||
|
||||
abstract class KotlinAndroid3GradleIT : AbstractKotlinAndroidGradleTests() {
|
||||
abstract class KotlinAndroid4GradleIT : AbstractKotlinAndroidGradleTests() {
|
||||
@Test
|
||||
fun testAfterEvaluateOrdering() = with(Project("AndroidProject")) {
|
||||
setupWorkingDir()
|
||||
|
||||
+1
-5
@@ -953,11 +953,7 @@ Finished executing task ':$taskName'|
|
||||
//The feature of failing the build on deprecation warnings is introduced in gradle 5.6
|
||||
val supportFailingBuildOnWarning =
|
||||
GradleVersion.version(chooseWrapperVersionOrFinishTest()) >= GradleVersion.version("5.6")
|
||||
// Agp uses Gradle internal API constructor DefaultDomainObjectSet(Class<T>) until Agp 3.6.0 which is deprecated by Gradle,
|
||||
// so we don't run with --warning-mode=fail when Agp 3.6 or less is used.
|
||||
val notUsingAgpWithWarnings =
|
||||
options.androidGradlePluginVersion == null || options.androidGradlePluginVersion > AGPVersion.v3_6_0
|
||||
if (supportFailingBuildOnWarning && notUsingAgpWithWarnings && options.warningMode == WarningMode.Fail) {
|
||||
if (supportFailingBuildOnWarning && options.warningMode == WarningMode.Fail) {
|
||||
add("--warning-mode=${WarningMode.Fail.name.lowercase(Locale.getDefault())}")
|
||||
}
|
||||
addAll(options.freeCommandLineArgs)
|
||||
|
||||
+9
-3
@@ -11,9 +11,9 @@ import org.junit.Ignore
|
||||
import org.junit.Test
|
||||
import java.io.File
|
||||
|
||||
open class Kapt3Android36IT : Kapt3AndroidIT() {
|
||||
open class Kapt3Android41IT : Kapt3AndroidIT() {
|
||||
override val androidGradlePluginVersion: AGPVersion
|
||||
get() = AGPVersion.v3_6_0
|
||||
get() = AGPVersion.v4_1_0
|
||||
|
||||
// AGP 3.+ is not working with Gradle 7+
|
||||
override val defaultGradleVersion: GradleVersionRequired
|
||||
@@ -318,10 +318,16 @@ abstract class Kapt3AndroidIT : BaseGradleIT() {
|
||||
|
||||
@Test
|
||||
open fun testDatabinding() {
|
||||
val javaHome = File(System.getProperty("jdk11Home")!!)
|
||||
Assume.assumeTrue("JDK 11 should be available", javaHome.isDirectory)
|
||||
|
||||
val project = Project("android-databinding", directoryPrefix = "kapt2")
|
||||
setupDataBinding(project)
|
||||
|
||||
project.build("assembleDebug", "assembleAndroidTest") {
|
||||
project.build(
|
||||
"assembleDebug", "assembleAndroidTest",
|
||||
options = defaultBuildOptions().copy(javaHome = javaHome)
|
||||
) {
|
||||
assertSuccessful()
|
||||
assertKaptSuccessful()
|
||||
assertFileExists("app/build/generated/source/kapt/debug/com/example/databinding/BR.java")
|
||||
|
||||
-4
@@ -110,7 +110,6 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() {
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
androidVersion = agpVersion,
|
||||
warningMode = if (agpVersion == TestVersions.AGP.AGP_36) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
),
|
||||
buildJdk = jdkVersion.location
|
||||
) {
|
||||
@@ -132,7 +131,6 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() {
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
androidVersion = agpVersion,
|
||||
warningMode = if (agpVersion == TestVersions.AGP.AGP_36) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
),
|
||||
buildJdk = jdkVersion.location
|
||||
) {
|
||||
@@ -299,7 +297,6 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() {
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
androidVersion = agpVersion,
|
||||
warningMode = if (agpVersion == TestVersions.AGP.AGP_36) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
),
|
||||
buildJdk = jdkVersion.location
|
||||
) {
|
||||
@@ -326,7 +323,6 @@ class KotlinSpecificDependenciesIT : KGPBaseTest() {
|
||||
gradleVersion,
|
||||
buildOptions = defaultBuildOptions.copy(
|
||||
androidVersion = agpVersion,
|
||||
warningMode = if (agpVersion == TestVersions.AGP.AGP_36) WarningMode.Summary else defaultBuildOptions.warningMode
|
||||
),
|
||||
buildJdk = jdkVersion.location
|
||||
) {
|
||||
|
||||
-4
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.model
|
||||
|
||||
import org.gradle.api.logging.configuration.WarningMode
|
||||
import org.gradle.util.GradleVersion
|
||||
import org.jetbrains.kotlin.gradle.testbase.*
|
||||
import org.junit.jupiter.api.DisplayName
|
||||
@@ -17,9 +16,6 @@ import kotlin.test.assertTrue
|
||||
@DisplayName("Kotlin plugin model")
|
||||
@OtherGradlePluginTests
|
||||
class KotlinProjectIT : KGPBaseTest() {
|
||||
override val defaultBuildOptions = super.defaultBuildOptions.copy(
|
||||
androidVersion = TestVersions.AGP.AGP_36,
|
||||
)
|
||||
|
||||
@DisplayName("Valid model is available in Kotlin only project")
|
||||
@GradleTest
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ class AppleFrameworkIT : BaseGradleIT() {
|
||||
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
||||
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = AGPVersion.v3_6_0
|
||||
androidGradlePluginVersion = AGPVersion.v4_1_0
|
||||
)
|
||||
|
||||
@Test
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ class XCFrameworkIT : BaseGradleIT() {
|
||||
override val defaultGradleVersion = GradleVersionRequired.FOR_MPP_SUPPORT
|
||||
override fun defaultBuildOptions() = super.defaultBuildOptions().copy(
|
||||
androidHome = KtTestUtil.findAndroidSdk(),
|
||||
androidGradlePluginVersion = AGPVersion.v3_6_0
|
||||
androidGradlePluginVersion = AGPVersion.v4_1_0
|
||||
)
|
||||
|
||||
@Test
|
||||
|
||||
+1
-5
@@ -33,8 +33,6 @@ interface TestVersions {
|
||||
}
|
||||
|
||||
object AGP {
|
||||
const val AGP_36 = "3.6.4"
|
||||
const val AGP_40 = "4.0.2"
|
||||
const val AGP_41 = "4.1.3"
|
||||
const val AGP_42 = "4.2.2"
|
||||
const val AGP_70 = "7.0.4"
|
||||
@@ -42,7 +40,7 @@ interface TestVersions {
|
||||
const val AGP_72 = "7.2.1"
|
||||
const val AGP_73 = "7.3.0"
|
||||
|
||||
const val MIN_SUPPORTED = AGP_36 // KotlinAndroidPlugin.MINIMAL_SUPPORTED_AGP_VERSION
|
||||
const val MIN_SUPPORTED = AGP_41 // KotlinAndroidPlugin.MINIMAL_SUPPORTED_AGP_VERSION
|
||||
const val MAX_SUPPORTED = AGP_70 // Update once Gradle MAX_SUPPORTED version will be bumped to 7.2+
|
||||
}
|
||||
|
||||
@@ -52,8 +50,6 @@ interface TestVersions {
|
||||
val maxSupportedGradleVersion: GradleVersion,
|
||||
val requiredJdkVersion: JavaVersion
|
||||
) {
|
||||
AGP_36(AGP.AGP_36, GradleVersion.version(Gradle.MIN_SUPPORTED), GradleVersion.version(Gradle.G_6_9), JavaVersion.VERSION_1_8),
|
||||
AGP_40(AGP.AGP_40, GradleVersion.version(Gradle.MIN_SUPPORTED), GradleVersion.version(Gradle.G_6_9), JavaVersion.VERSION_1_8),
|
||||
AGP_41(AGP.AGP_41, GradleVersion.version(Gradle.MIN_SUPPORTED), GradleVersion.version(Gradle.G_6_9), JavaVersion.VERSION_1_8),
|
||||
AGP_42(AGP.AGP_42, GradleVersion.version(Gradle.MIN_SUPPORTED), GradleVersion.version(Gradle.G_6_9), JavaVersion.VERSION_1_8),
|
||||
AGP_70(AGP.AGP_70, GradleVersion.version(Gradle.G_7_0), GradleVersion.version(Gradle.G_7_4), JavaVersion.VERSION_11),
|
||||
|
||||
+1
-2
@@ -18,7 +18,6 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) {
|
||||
fun fromString(versionString: String): AGPVersion =
|
||||
AGPVersion(VersionNumber.parse(versionString))
|
||||
|
||||
val v3_6_0 = fromString("3.6.4")
|
||||
val v4_1_0 = fromString("4.1.3")
|
||||
val v4_2_0 = fromString("4.2.2")
|
||||
val v7_0_0 = fromString("7.0.4")
|
||||
@@ -26,6 +25,6 @@ class AGPVersion private constructor(private val versionNumber: VersionNumber) {
|
||||
val v7_2_2 = fromString("7.2.2")
|
||||
val v7_3_0 = fromString("7.3.0")
|
||||
|
||||
val testedVersions = listOf(v3_6_0, v4_1_0, v4_2_0, v7_0_0, v7_1_0, v7_2_2, v7_3_0)
|
||||
val testedVersions = listOf(v4_1_0, v4_2_0, v7_0_0, v7_1_0, v7_2_2, v7_3_0)
|
||||
}
|
||||
}
|
||||
|
||||
+10
-12
@@ -3,16 +3,21 @@ apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
|
||||
android {
|
||||
compileSdkVersion 24
|
||||
buildToolsVersion "25.0.2"
|
||||
compileSdkVersion 32
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.example.databinding"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 24
|
||||
targetSdkVersion 32
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
dataBinding true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
@@ -24,17 +29,10 @@ android {
|
||||
sourceCompatibility 1.8
|
||||
targetCompatibility 1.8
|
||||
}
|
||||
|
||||
dataBinding {
|
||||
enabled = true
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
||||
kapt "com.android.databinding:compiler:$android_tools_version"
|
||||
kaptAndroidTest "junit:junit:4.13.2"
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
testImplementation'junit:junit:4.13.2'
|
||||
}
|
||||
+3
-3
@@ -2,9 +2,9 @@ package com.example.databinding
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.Resources
|
||||
import android.databinding.*
|
||||
import android.databinding.adapters.AdapterViewBindingAdapter
|
||||
import android.support.annotation.IntegerRes
|
||||
import androidx.databinding.*
|
||||
import androidx.databinding.adapters.AdapterViewBindingAdapter
|
||||
import androidx.annotation.IntegerRes
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.widget.*
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.example.databinding
|
||||
|
||||
import android.app.Activity
|
||||
import android.databinding.DataBindingUtil
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import android.os.Bundle
|
||||
import android.view.MotionEvent
|
||||
import android.widget.Toast
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
package com.example.databinding
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.databinding.BaseObservable
|
||||
import androidx.databinding.BaseObservable
|
||||
|
||||
class UserProfile : BaseObservable() {
|
||||
open var gender: Gender = Gender.Female
|
||||
|
||||
+3
-21
@@ -1,13 +1,10 @@
|
||||
import org.gradle.util.VersionNumber
|
||||
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url 'https://maven.google.com' }
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url = uri("https://jcenter.bintray.com/") }
|
||||
}
|
||||
dependencies {
|
||||
classpath "com.android.tools.build:gradle:$android_tools_version"
|
||||
@@ -21,22 +18,7 @@ buildscript {
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven { url 'https://maven.google.com' }
|
||||
google()
|
||||
mavenCentral()
|
||||
maven { url = uri("https://jcenter.bintray.com/") }
|
||||
}
|
||||
|
||||
if (VersionNumber.parse(android_tools_version) >= VersionNumber.parse("3.3.0")) {
|
||||
// Workaround: the AGP 3.3.2 databinding library depends on these exact versions, and the espresso test library
|
||||
// transitively brings newer incompatible ones. Force these versions:
|
||||
configurations.all {
|
||||
resolutionStrategy {
|
||||
force 'com.android.support:support-annotations:26.1.0'
|
||||
force 'com.android.support:support-core-utils:26.1.0'
|
||||
force 'com.android.support:support-compat:26.1.0'
|
||||
force 'android.arch.lifecycle:common:1.0.3'
|
||||
force 'android.arch.core:common:1.0.0'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
android.useAndroidX=true
|
||||
+13
-12
@@ -3,15 +3,18 @@ apply plugin: 'kotlin-android'
|
||||
apply plugin: 'kotlin-kapt'
|
||||
|
||||
android {
|
||||
compileSdkVersion 27
|
||||
buildToolsVersion "27.0.3"
|
||||
compileSdkVersion 32
|
||||
|
||||
defaultConfig {
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 27
|
||||
targetSdkVersion 32
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
dataBinding true
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
@@ -25,17 +28,15 @@ android {
|
||||
targetCompatibility 1.8
|
||||
}
|
||||
|
||||
dataBinding { enabled = true }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
|
||||
api "androidx.annotation:annotation:1.5.0"
|
||||
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
|
||||
kapt "com.android.databinding:compiler:$android_tools_version"
|
||||
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
androidTestImplementation "com.android.support.test:rules:1.0.2"
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
|
||||
androidTestImplementation 'androidx.appcompat:appcompat:1.5.1'
|
||||
androidTestImplementation 'androidx.test:runner:1.4.0'
|
||||
androidTestImplementation 'androidx.test:rules:1.4.0'
|
||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
||||
}
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
package org.maw.library
|
||||
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
||||
class BlankActivity : AppCompatActivity() {
|
||||
}
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
package org.maw.library
|
||||
|
||||
import android.support.test.annotation.UiThreadTest
|
||||
import android.support.test.rule.ActivityTestRule
|
||||
import android.support.test.runner.AndroidJUnit4
|
||||
import androidx.test.annotation.UiThreadTest
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.runner.AndroidJUnit4
|
||||
import android.view.ViewGroup
|
||||
import org.junit.Rule
|
||||
import org.junit.Test
|
||||
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
package org.maw.library
|
||||
|
||||
import android.content.Context
|
||||
import android.databinding.BindingAdapter
|
||||
import android.databinding.DataBindingComponent
|
||||
import android.databinding.DataBindingUtil
|
||||
import androidx.databinding.BindingAdapter
|
||||
import androidx.databinding.DataBindingComponent
|
||||
import androidx.databinding.DataBindingUtil
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.FrameLayout
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ import java.util.concurrent.atomic.AtomicBoolean
|
||||
internal object KotlinMultiplatformAndroidGradlePluginCompatibilityHealthCheck {
|
||||
|
||||
val compatibleAndroidGradlePluginVersionRange = AndroidGradlePluginVersionRange(
|
||||
minSupportedVersion = AndroidGradlePluginVersionRange.Version(4, 0),
|
||||
minSupportedVersion = AndroidGradlePluginVersionRange.Version(4, 1),
|
||||
maxSupportedVersion = AndroidGradlePluginVersionRange.Version(7, 3)
|
||||
)
|
||||
|
||||
|
||||
+1
-1
@@ -734,7 +734,7 @@ internal open class KotlinAndroidPlugin(
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val minimalSupportedAgpVersion = AndroidGradlePluginVersion(3, 6, 4)
|
||||
private val minimalSupportedAgpVersion = AndroidGradlePluginVersion(4, 1, 3)
|
||||
fun androidTargetHandler(): AndroidProjectHandler {
|
||||
val tasksProvider = KotlinTasksProvider()
|
||||
val androidGradlePluginVersion = AndroidGradlePluginVersion.currentOrNull
|
||||
|
||||
Reference in New Issue
Block a user