Skip to content

Commit e32233e

Browse files
authored
Merge pull request #221 from gradle/dd/agp-7.1.0-beta04
Bump to AGP-7.1.0-beta04 and 7.2.0-alpha06
2 parents a709b38 + df32059 commit e32233e

7 files changed

+136
-35
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
Some Android plugin versions have issues with Gradle's build cache feature. When applied to an Android project this plugin applies workarounds for these issues based on the Android plugin and Gradle versions.
77

88
* Supported Gradle versions: 5.4.1+
9-
* Supported Android Gradle Plugin versions: 3.5.4, 3.6.4, 4.0.1, 4.1.3, 4.2.2, 7.0.4, 7.1.0-beta03, 7.2.0-alpha04
9+
* Supported Android Gradle Plugin versions: 3.5.4, 3.6.4, 4.0.1, 4.1.3, 4.2.2, 7.0.4, 7.1.0-beta04, 7.2.0-alpha06
1010
* Supported Kotlin versions: 1.3.70+
1111

1212
We only test against the latest patch versions of each minor version of Android Gradle Plugin. This means that although it may work perfectly well with an older patch version (say 3.6.2), we do not test against these older patch versions, so the latest patch version is the only version from that minor release that we technically support.

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ def isCI = (System.getenv('CI') ?: 'false').toBoolean()
1717

1818
// Maps supported Android plugin versions to the versions of Gradle that support it
1919
def supportedVersions = [
20-
"7.2.0-alpha04": ["7.3.3"],
21-
"7.1.0-beta03": ["7.3.3"],
20+
"7.2.0-alpha06": ["7.3.3"],
21+
"7.1.0-beta04": ["7.3.3"],
2222
"7.0.4": ["7.3.3"],
2323
"4.2.2": ["6.9.1", "7.3.3"],
2424
"4.1.3": ["6.5.1", "6.9.1"],

src/test/groovy/org/gradle/android/CrossVersionOutcomeAndRelocationTest.groovy

+125-28
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
3939
.build()
4040
.writeProject()
4141

42-
def expectedResults = expectedResults(androidVersion, gradleVersion)
42+
def expectedResults = expectedResults(androidVersion, latestKotlinVersionForGradleVersion(gradleVersion))
4343

4444
println expectedResults.describe()
4545

@@ -116,14 +116,25 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
116116
}
117117

118118
private static class ExpectedOutcomeBuilder {
119+
private Set<String> seen = []
119120
private ImmutableMap.Builder<String, ExpectedOutcome> mapBuilder = new ImmutableMap.Builder<String, ExpectedOutcome>()
120121

122+
private void checkIfSeen(String key) {
123+
if (seen.contains(key)) {
124+
throw new IllegalArgumentException("The task ${key} already has an expected value!")
125+
} else {
126+
seen.add(key)
127+
}
128+
}
129+
121130
ExpectedOutcomeBuilder expect(String key, TaskOutcome value) {
131+
checkIfSeen(key)
122132
mapBuilder.put(key, ExpectedOutcome.valueOf(value.name()))
123133
return this
124134
}
125135

126136
ExpectedOutcomeBuilder expectChangingValue(String key) {
137+
checkIfSeen(key)
127138
mapBuilder.put(key, ExpectedOutcome.UNKNOWN)
128139
return this
129140
}
@@ -133,25 +144,32 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
133144
}
134145
}
135146

136-
private static ExpectedResults expectedResults(VersionNumber androidVersion, GradleVersion gradleVersion) {
147+
private static ExpectedResults expectedResults(VersionNumber androidVersion, VersionNumber kotlinVersion) {
137148
def isAndroid35xOrHigher = androidVersion >= android("3.5.0")
138149
def isAndroid350to352 = androidVersion >= android("3.5.0") && androidVersion <= android("3.5.2")
139150
def isAndroid35x = androidVersion >= android("3.5.0") && androidVersion < android("3.6.0")
140151
def isAndroid35xTo36x = androidVersion >= android("3.5.0") && androidVersion <= android("3.6.4")
141-
def isAndroid35xTo40x = androidVersion >= android("3.5.0") && androidVersion <= android("4.1.0-alpha01")
142-
def isAndroid35xTo41x = androidVersion >= android("3.5.0") && androidVersion <= android("4.2.0-alpha01")
143-
def isAndroid35xTo42x = androidVersion >= android("3.5.0") && androidVersion <= android("7.0.0-alpha01")
144-
def isAndroid35xTo70x = androidVersion >= android("3.5.0") && androidVersion <= android("7.1.0-alpha01")
152+
def isAndroid35xTo40x = androidVersion >= android("3.5.0") && androidVersion < android("4.1.0-alpha01")
153+
def isAndroid35xTo41x = androidVersion >= android("3.5.0") && androidVersion < android("4.2.0-alpha01")
154+
def isAndroid35xTo42x = androidVersion >= android("3.5.0") && androidVersion < android("7.0.0-alpha01")
155+
def isAndroid35xTo70x = androidVersion >= android("3.5.0") && androidVersion < android("7.1.0-alpha01")
156+
def isAndroid35xTo71x = androidVersion >= android("3.5.0") && androidVersion < android("7.2.0-alpha01")
145157
def isAndroid36xOrHigher = androidVersion >= android("3.6.0")
146158
def isAndroid40xOrHigher = androidVersion >= android("4.0.0-beta01")
147159
def isAndroid40x = androidVersion >= android("4.0.0") && androidVersion < android("4.1.0-alpha01")
148-
def isAndroid40xTo41x = androidVersion >= android("4.0.0") && androidVersion <= android("4.2.0-alpha01")
160+
def isAndroid40xTo41x = androidVersion >= android("4.0.0") && androidVersion < android("4.2.0-alpha01")
161+
def isAndroid40xTo70x = androidVersion >= android("4.0.0") && androidVersion < android("7.1.0-alpha01")
162+
def isAndroid40xTo71x = androidVersion >= android("4.0.0") && androidVersion < android("7.2.0-alpha01")
149163
def isAndroid41xOrHigher = androidVersion >= android("4.1.0-alpha01")
150164
def isAndroid41x = androidVersion >= android("4.1.0-alpha01") && androidVersion < android("4.2.0-alpha01")
165+
def isAndroid41xTo71x = androidVersion >= android("4.1.0") && androidVersion < android("7.2.0-alpha01")
151166
def isAndroid42x = androidVersion >= android("4.2.0-alpha01") && androidVersion < android("7.0.0-alpha01")
167+
def isAndroid42xTo71x = androidVersion >= android("4.2.0") && androidVersion < android("7.2.0-alpha01")
152168
def isAndroid42xOrHigher = androidVersion >= android("4.2.0-alpha01")
153169
def isAndroid70xOrHigher = androidVersion >= android("7.0.0-alpha01")
154170
def isAndroid71xOrHigher = androidVersion >= android("7.1.0-alpha01")
171+
def isAndroid71x = androidVersion >= android("7.1.0-alpha01") && androidVersion < android("7.2.0-alpha01")
172+
def isAndroid72xOrHigher = androidVersion >= android("7.2.0-alpha01")
155173

156174
def builder = new ExpectedOutcomeBuilder()
157175

@@ -189,6 +207,10 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
189207
android35xTo70xExpectations(builder)
190208
}
191209

210+
if (isAndroid35xTo71x) {
211+
android35xTo71xExpectations(builder)
212+
}
213+
192214
// Applies to anything 3.6.0 or higher
193215
if (isAndroid36xOrHigher) {
194216
android36xOrHigherExpectations(builder)
@@ -208,7 +230,15 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
208230
}
209231

210232
if (isAndroid40xTo41x) {
211-
android40xTo41xExpectation(builder)
233+
android40xTo41xExpectations(builder)
234+
}
235+
236+
if (isAndroid40xTo70x) {
237+
android40xTo70xExpectations(builder)
238+
}
239+
240+
if (isAndroid40xTo71x) {
241+
android40xTo71xExpectations(builder)
212242
}
213243

214244
// Applies to anything 4.1.0 or higher
@@ -220,10 +250,18 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
220250
android41xOnlyExpectations(builder)
221251
}
222252

253+
if (isAndroid41xTo71x) {
254+
android41xTo71xExpectations(builder)
255+
}
256+
223257
if (isAndroid42x) {
224258
android42xOnlyExpectations(builder)
225259
}
226260

261+
if (isAndroid42xTo71x) {
262+
android42xTo71xExpectations(builder)
263+
}
264+
227265
if (isAndroid42xOrHigher) {
228266
android42xOrHigherExpectations(builder)
229267
}
@@ -236,6 +274,18 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
236274
android71xOrHigherExpectations(builder)
237275
}
238276

277+
if (isAndroid71x) {
278+
android71xOnlyExpectations(builder)
279+
}
280+
281+
if (isAndroid72xOrHigher) {
282+
android72xOrHigherExpectations(builder)
283+
}
284+
285+
if (kotlinVersion >= VersionNumber.parse("1.6.0")) {
286+
builder.expect(":app:buildKotlinToolingMetadata", SUCCESS)
287+
}
288+
239289
new ExpectedResults(
240290
builder.build()
241291
)
@@ -245,8 +295,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
245295
builder.expect(':app:assemble', SUCCESS)
246296
builder.expect(':app:assembleDebug', SUCCESS)
247297
builder.expect(':app:assembleRelease', SUCCESS)
248-
builder.expect(':app:checkDebugDuplicateClasses', FROM_CACHE)
249-
builder.expect(':app:checkReleaseDuplicateClasses', FROM_CACHE)
250298
builder.expect(':app:compileDebugAidl', NO_SOURCE)
251299
builder.expect(':app:compileDebugJavaWithJavac', FROM_CACHE)
252300
builder.expect(':app:compileDebugKotlin', FROM_CACHE)
@@ -255,8 +303,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
255303
builder.expect(':app:compileReleaseJavaWithJavac', FROM_CACHE)
256304
builder.expect(':app:compileReleaseKotlin', FROM_CACHE)
257305
builder.expect(':app:compileReleaseRenderscript', FROM_CACHE)
258-
builder.expect(':app:createDebugCompatibleScreenManifests', FROM_CACHE)
259-
builder.expect(':app:createReleaseCompatibleScreenManifests', FROM_CACHE)
260306
builder.expect(':app:dataBindingGenBaseClassesDebug', FROM_CACHE)
261307
builder.expect(':app:dataBindingGenBaseClassesRelease', FROM_CACHE)
262308
builder.expect(':app:dataBindingMergeDependencyArtifactsDebug', SUCCESS)
@@ -296,7 +342,6 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
296342
builder.expect(':app:processDebugManifest', FROM_CACHE)
297343
builder.expect(':app:processReleaseJavaRes', NO_SOURCE)
298344
builder.expect(':app:processReleaseManifest', FROM_CACHE)
299-
builder.expect(':app:validateSigningDebug', FROM_CACHE)
300345
builder.expect(':library:assemble', SUCCESS)
301346
builder.expect(':library:assembleDebug', SUCCESS)
302347
builder.expect(':library:assembleRelease', SUCCESS)
@@ -427,6 +472,14 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
427472
builder.expect(':library:compileReleaseSources', UP_TO_DATE)
428473
}
429474

475+
static void android35xTo71xExpectations(ExpectedOutcomeBuilder builder) {
476+
builder.expect(':app:checkDebugDuplicateClasses', FROM_CACHE)
477+
builder.expect(':app:checkReleaseDuplicateClasses', FROM_CACHE)
478+
builder.expect(':app:createDebugCompatibleScreenManifests', FROM_CACHE)
479+
builder.expect(':app:createReleaseCompatibleScreenManifests', FROM_CACHE)
480+
builder.expect(':app:validateSigningDebug', FROM_CACHE)
481+
}
482+
430483
static void android35xOnlyExpectations(ExpectedOutcomeBuilder builder) {
431484
builder.expect(':app:checkDebugManifest', SUCCESS)
432485
builder.expect(':app:checkReleaseManifest', SUCCESS)
@@ -481,41 +534,39 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
481534
builder.expect(':library:compileReleaseShaders', NO_SOURCE)
482535
builder.expect(':library:dataBindingMergeGenClassesDebug', FROM_CACHE)
483536
builder.expect(':library:dataBindingMergeGenClassesRelease', FROM_CACHE)
484-
builder.expect(':library:mergeDebugConsumerProguardFiles', FROM_CACHE)
485-
builder.expect(':library:mergeDebugGeneratedProguardFiles', FROM_CACHE)
486-
builder.expect(':library:mergeReleaseConsumerProguardFiles', FROM_CACHE)
487-
builder.expect(':library:mergeReleaseGeneratedProguardFiles', FROM_CACHE)
488537
builder.expect(':library:bundleLibCompileToJarDebug', SUCCESS)
489-
builder.expect(':library:bundleLibResDebug', NO_SOURCE)
490-
builder.expect(':library:bundleLibResRelease', NO_SOURCE)
491538
builder.expect(':library:bundleLibCompileToJarRelease', SUCCESS)
492539
builder.expect(':library:stripDebugDebugSymbols', NO_SOURCE)
493540
builder.expect(':library:stripReleaseDebugSymbols', NO_SOURCE)
494541
builder.expect(':app:collectReleaseDependencies', SUCCESS)
495542
builder.expect(':app:sdkReleaseDependencyData', SUCCESS)
496543
}
497544

498-
static void android40xTo41xExpectation(ExpectedOutcomeBuilder builder) {
545+
static void android40xTo41xExpectations(ExpectedOutcomeBuilder builder) {
499546
builder.expect(':library:bundleLibRuntimeToJarDebug', SUCCESS)
500547
builder.expect(':library:bundleLibRuntimeToJarRelease', SUCCESS)
501548
}
502549

550+
static void android40xTo70xExpectations(ExpectedOutcomeBuilder builder) {
551+
builder.expect(':library:bundleLibResDebug', NO_SOURCE)
552+
builder.expect(':library:bundleLibResRelease', NO_SOURCE)
553+
}
554+
555+
static void android40xTo71xExpectations(ExpectedOutcomeBuilder builder) {
556+
builder.expect(':library:mergeDebugConsumerProguardFiles', FROM_CACHE)
557+
builder.expect(':library:mergeDebugGeneratedProguardFiles', FROM_CACHE)
558+
builder.expect(':library:mergeReleaseConsumerProguardFiles', FROM_CACHE)
559+
builder.expect(':library:mergeReleaseGeneratedProguardFiles', FROM_CACHE)
560+
}
561+
503562
static void android41xOrHigherExpectations(ExpectedOutcomeBuilder builder) {
504-
builder.expect(':library:dataBindingTriggerDebug', FROM_CACHE)
505-
builder.expect(':library:dataBindingTriggerRelease', FROM_CACHE)
506-
builder.expect(':app:dataBindingTriggerDebug', FROM_CACHE)
507563
builder.expect(':app:processDebugMainManifest', FROM_CACHE)
508564
builder.expect(':app:processDebugManifestForPackage', FROM_CACHE)
509-
builder.expect(':app:dataBindingTriggerRelease', FROM_CACHE)
510565
builder.expect(':app:processReleaseMainManifest', FROM_CACHE)
511566
builder.expect(':app:processReleaseManifestForPackage', FROM_CACHE)
512567
builder.expect(':app:compressDebugAssets', FROM_CACHE)
513568
builder.expect(':app:compressReleaseAssets', FROM_CACHE)
514569
builder.expect(':app:mergeDebugNativeDebugMetadata', NO_SOURCE)
515-
builder.expect(':app:checkDebugAarMetadata', FROM_CACHE)
516-
builder.expect(':app:checkReleaseAarMetadata', FROM_CACHE)
517-
builder.expect(':library:writeDebugAarMetadata', FROM_CACHE)
518-
builder.expect(':library:writeReleaseAarMetadata', FROM_CACHE)
519570
builder.expect(':library:mergeDebugNativeLibs', NO_SOURCE)
520571
builder.expect(':library:mergeReleaseNativeLibs', NO_SOURCE)
521572
}
@@ -524,6 +575,17 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
524575
builder.expect(':app:mergeReleaseNativeDebugMetadata', NO_SOURCE)
525576
}
526577

578+
static void android41xTo71xExpectations(ExpectedOutcomeBuilder builder) {
579+
builder.expect(':app:dataBindingTriggerDebug', FROM_CACHE)
580+
builder.expect(':app:dataBindingTriggerRelease', FROM_CACHE)
581+
builder.expect(':library:dataBindingTriggerDebug', FROM_CACHE)
582+
builder.expect(':library:dataBindingTriggerRelease', FROM_CACHE)
583+
builder.expect(':app:checkDebugAarMetadata', FROM_CACHE)
584+
builder.expect(':app:checkReleaseAarMetadata', FROM_CACHE)
585+
builder.expect(':library:writeDebugAarMetadata', FROM_CACHE)
586+
builder.expect(':library:writeReleaseAarMetadata', FROM_CACHE)
587+
}
588+
527589
static void android40xOnlyExpectations(ExpectedOutcomeBuilder builder) {
528590
builder.expect(':app:dataBindingExportBuildInfoDebug', FROM_CACHE)
529591
builder.expect(':app:dataBindingExportBuildInfoRelease', FROM_CACHE)
@@ -547,6 +609,9 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
547609
builder.expect(':library:bundleLibRuntimeToJarRelease', SUCCESS)
548610
builder.expect(':app:optimizeReleaseResources', FROM_CACHE)
549611
builder.expect(':app:mergeReleaseNativeDebugMetadata', NO_SOURCE)
612+
}
613+
614+
static void android42xTo71xExpectations(ExpectedOutcomeBuilder builder) {
550615
builder.expect(':app:writeDebugAppMetadata', FROM_CACHE)
551616
builder.expect(':app:writeReleaseAppMetadata', FROM_CACHE)
552617
builder.expect(':app:writeDebugSigningConfigVersions', FROM_CACHE)
@@ -582,4 +647,36 @@ class CrossVersionOutcomeAndRelocationTest extends AbstractTest {
582647
builder.expect(':app:createDebugApkListingFileRedirect', SUCCESS)
583648
builder.expect(':app:createReleaseApkListingFileRedirect', SUCCESS)
584649
}
650+
651+
static void android71xOnlyExpectations(ExpectedOutcomeBuilder builder) {
652+
// Previously were `NO_SOURCE` but now `FROM_CACHE`
653+
builder.expect(':library:bundleLibResDebug', FROM_CACHE)
654+
builder.expect(':library:bundleLibResRelease', FROM_CACHE)
655+
}
656+
657+
static void android72xOrHigherExpectations(ExpectedOutcomeBuilder builder) {
658+
builder.expect(':app:checkDebugAarMetadata', SUCCESS)
659+
builder.expect(':app:checkReleaseAarMetadata', SUCCESS)
660+
builder.expect(':app:checkDebugDuplicateClasses', SUCCESS)
661+
builder.expect(':app:checkReleaseDuplicateClasses', SUCCESS)
662+
builder.expect(':app:createDebugCompatibleScreenManifests', SUCCESS)
663+
builder.expect(':app:createReleaseCompatibleScreenManifests', SUCCESS)
664+
builder.expect(':app:dataBindingTriggerDebug', SUCCESS)
665+
builder.expect(':app:dataBindingTriggerRelease', SUCCESS)
666+
builder.expect(':app:validateSigningDebug', SUCCESS)
667+
builder.expect(':app:writeDebugAppMetadata', SUCCESS)
668+
builder.expect(':app:writeReleaseAppMetadata', SUCCESS)
669+
builder.expect(':app:writeDebugSigningConfigVersions', SUCCESS)
670+
builder.expect(':app:writeReleaseSigningConfigVersions', SUCCESS)
671+
builder.expect(':library:bundleLibResDebug', SUCCESS)
672+
builder.expect(':library:bundleLibResRelease', SUCCESS)
673+
builder.expect(':library:dataBindingTriggerDebug', SUCCESS)
674+
builder.expect(':library:dataBindingTriggerRelease', SUCCESS)
675+
builder.expect(':library:mergeDebugConsumerProguardFiles', SUCCESS)
676+
builder.expect(':library:mergeDebugGeneratedProguardFiles', SUCCESS)
677+
builder.expect(':library:mergeReleaseConsumerProguardFiles', SUCCESS)
678+
builder.expect(':library:mergeReleaseGeneratedProguardFiles', SUCCESS)
679+
builder.expect(':library:writeDebugAarMetadata', SUCCESS)
680+
builder.expect(':library:writeReleaseAarMetadata', SUCCESS)
681+
}
585682
}

src/test/groovy/org/gradle/android/RerunTasksTest.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class RerunTasksTest extends AbstractTest {
1212

1313
def projectDir = temporaryFolder.newFolder()
1414
SimpleAndroidApp.builder(projectDir, cacheDir)
15-
.withKotlinVersion(VersionNumber.parse("1.5.0"))
15+
.withKotlinVersion(TestVersions.latestSupportedKotlinVersion())
1616
.build()
1717
.writeProject()
1818

src/test/groovy/org/gradle/android/RoomSchemaLocationWorkaroundTest.groovy

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ class RoomSchemaLocationWorkaroundTest extends AbstractTest {
1919

2020
@Unroll
2121
def "schemas are generated into task-specific directory and are cacheable with kotlin and kapt workers enabled (Android #androidVersion) (Kotlin #kotlinVersion)"() {
22+
def kotlinVersionNumber = VersionNumber.parse(kotlinVersion)
23+
// There are kotlin module version errors when using older versions of kotlin with AGP 7.2.0+ in this configuration
24+
Assume.assumeFalse(androidVersion >= VersionNumber.parse("7.2.0-alpha01") && kotlinVersionNumber < VersionNumber.parse("1.5.0"))
25+
2226
SimpleAndroidApp.builder(temporaryFolder.root, cacheDir)
2327
.withAndroidVersion(androidVersion)
2428
.withKotlinVersion(VersionNumber.parse(kotlinVersion))

src/test/groovy/org/gradle/android/TestVersions.groovy

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ class TestVersions {
4242
return minorVersions.collect { getLatestVersionForAndroid(it) }
4343
}
4444

45-
static List<String> supportedKotlinVersions = ["1.3.72", "1.5.0"]
45+
static List<String> supportedKotlinVersions = ["1.3.72", "1.5.32", "1.6.10"]
4646

4747
static VersionNumber oldestSupportedKotlinVersion() {
4848
return VersionNumber.parse(supportedKotlinVersions.first())

0 commit comments

Comments
 (0)