Skip to content

Commit 42f11cf

Browse files
committed
Update gradle plugin and improve gradle scan speed (#252)
* Update gradle plugin * Improve gradle scan speed * Update github workflow * Run dependencyGuardBaseline * Fix lint errors * Fix R8 issues temporarily * Try to fix OOM error
1 parent 3306969 commit 42f11cf

File tree

14 files changed

+161
-133
lines changed

14 files changed

+161
-133
lines changed

β€Ž.github/ci-gradle.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
org.gradle.daemon=false
1919
org.gradle.parallel=true
20-
org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError
2120
org.gradle.workers.max=2
2221

2322
kotlin.compiler.execution.strategy=in-process

β€Ž.github/workflows/build.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@ jobs:
1616
timeout-minutes: 40
1717

1818
steps:
19-
- uses: actions/checkout@v2
19+
- uses: actions/checkout@v3
2020

2121
- name: Copy CI gradle.properties
2222
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties
2323

2424
- name: Set up JDK
25-
uses: actions/setup-java@v1
25+
uses: actions/setup-java@v3
2626
with:
27-
java-version: 11
27+
distribution: temurin
28+
java-version: 17
2829

2930
- name: Build, lint and spotless
30-
run: ./gradlew spotlessCheck dependencyGuard assemble lintDebug --scan
31+
run: ./gradlew spotlessCheck dependencyGuard lintDebug assemble --scan

β€Žapp/proguard-rules.pro

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@
3939
-dontwarn org.jetbrains.annotations.**
4040
-keep class kotlin.Metadata { *; }
4141

42-
# For dynamic-features module
43-
-keep class soup.movie.theatermap.** { *; }
44-
4542
# For kotlinx.serialization
4643
-keepattributes *Annotation*, InnerClasses
4744
-dontnote kotlinx.serialization.SerializationKt

β€Žbuild-logic/convention/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ plugins {
55
group = "soup.movie.buildlogic"
66

77
java {
8-
sourceCompatibility = JavaVersion.VERSION_11
9-
targetCompatibility = JavaVersion.VERSION_11
8+
sourceCompatibility = JavaVersion.VERSION_17
9+
targetCompatibility = JavaVersion.VERSION_17
1010
}
1111

1212
dependencies {

β€Žbuild-logic/convention/src/main/kotlin/soup/movie/buildlogic/Android.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ fun Project.configureAndroid() {
1515
}
1616

1717
compileOptions {
18-
sourceCompatibility = JavaVersion.VERSION_1_8
19-
targetCompatibility = JavaVersion.VERSION_1_8
18+
sourceCompatibility = JavaVersion.VERSION_11
19+
targetCompatibility = JavaVersion.VERSION_11
2020
}
2121
}
2222
}

β€Žbuild-logic/convention/src/main/kotlin/soup/movie/buildlogic/Kotlin.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
88
fun Project.configureKotlin() {
99
tasks.withType<KotlinCompile>().configureEach {
1010
kotlinOptions {
11-
jvmTarget = JavaVersion.VERSION_1_8.toString()
11+
jvmTarget = JavaVersion.VERSION_11.toString()
1212

1313
freeCompilerArgs = freeCompilerArgs + listOf(
1414
"-opt-in=kotlin.RequiresOptIn",
1515
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
16+
17+
// https://github.com/Kotlin/kotlinx.serialization/issues/2145#issuecomment-1653091753
18+
"-Xstring-concat=inline",
1619
)
1720
}
1821
}

β€Žbuild.gradle

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,4 @@
11
buildscript {
2-
repositories {
3-
google()
4-
mavenCentral()
5-
6-
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
7-
maven { url "https://jitpack.io" }
8-
}
92
dependencies {
103
classpath libs.android.pluginGradle
114
classpath libs.kotlin.pluginGradle
@@ -26,19 +19,6 @@ plugins {
2619

2720
apply from: "$rootDir/gradle/version.gradle"
2821

29-
allprojects {
30-
repositories {
31-
google()
32-
mavenCentral()
33-
34-
maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
35-
maven { url "https://jitpack.io" }
36-
maven { url 'https://maven.google.com/' }
37-
maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
38-
maven { url 'https://naver.jfrog.io/artifactory/maven/' }
39-
}
40-
}
41-
4222
subprojects {
4323
apply plugin: 'com.diffplug.spotless'
4424
spotless {

β€Ždependencies/classpath.txt

Lines changed: 71 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,46 @@
1-
androidx.databinding:databinding-common:7.4.2
2-
androidx.databinding:databinding-compiler-common:7.4.2
3-
com.android.databinding:baseLibrary:7.4.2
4-
com.android.tools.analytics-library:crash:30.4.2
5-
com.android.tools.analytics-library:protos:30.4.2
6-
com.android.tools.analytics-library:shared:30.4.2
7-
com.android.tools.analytics-library:tracker:30.4.2
1+
androidx.databinding:databinding-common:8.1.4
2+
androidx.databinding:databinding-compiler-common:8.1.4
3+
com.android.databinding:baseLibrary:8.1.4
4+
com.android.tools.analytics-library:crash:31.1.4
5+
com.android.tools.analytics-library:protos:31.1.4
6+
com.android.tools.analytics-library:shared:31.1.4
7+
com.android.tools.analytics-library:tracker:31.1.4
88
com.android.tools.build.jetifier:jetifier-core:1.0.0-beta10
99
com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta10
10-
com.android.tools.build:aapt2-proto:7.4.2-8841542
11-
com.android.tools.build:aaptcompiler:7.4.2
12-
com.android.tools.build:apksig:7.4.2
13-
com.android.tools.build:apkzlib:7.4.2
14-
com.android.tools.build:builder-model:7.4.2
15-
com.android.tools.build:builder-test-api:7.4.2
16-
com.android.tools.build:builder:7.4.2
17-
com.android.tools.build:bundletool:1.11.4
18-
com.android.tools.build:gradle-api:7.4.2
19-
com.android.tools.build:gradle-settings-api:7.4.2
20-
com.android.tools.build:gradle:7.4.2
21-
com.android.tools.build:manifest-merger:30.4.2
10+
com.android.tools.build:aapt2-proto:8.1.4-10154469
11+
com.android.tools.build:aaptcompiler:8.1.4
12+
com.android.tools.build:apksig:8.1.4
13+
com.android.tools.build:apkzlib:8.1.4
14+
com.android.tools.build:builder-model:8.1.4
15+
com.android.tools.build:builder-test-api:8.1.4
16+
com.android.tools.build:builder:8.1.4
17+
com.android.tools.build:bundletool:1.14.0
18+
com.android.tools.build:gradle-api:8.1.4
19+
com.android.tools.build:gradle-settings-api:8.1.4
20+
com.android.tools.build:gradle:8.1.4
21+
com.android.tools.build:manifest-merger:31.1.4
2222
com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
23-
com.android.tools.ddms:ddmlib:30.4.2
24-
com.android.tools.layoutlib:layoutlib-api:30.4.2
25-
com.android.tools.lint:lint-model:30.4.2
26-
com.android.tools.lint:lint-typedef-remover:30.4.2
27-
com.android.tools.utp:android-device-provider-ddmlib-proto:30.4.2
28-
com.android.tools.utp:android-device-provider-gradle-proto:30.4.2
29-
com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.4.2
30-
com.android.tools.utp:android-test-plugin-host-coverage-proto:30.4.2
31-
com.android.tools.utp:android-test-plugin-host-retention-proto:30.4.2
32-
com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.4.2
33-
com.android.tools:annotations:30.4.2
34-
com.android.tools:common:30.4.2
35-
com.android.tools:dvlib:30.4.2
36-
com.android.tools:repository:30.4.2
37-
com.android.tools:sdk-common:30.4.2
38-
com.android.tools:sdklib:30.4.2
39-
com.android:signflinger:7.4.2
40-
com.android:zipflinger:7.4.2
23+
com.android.tools.ddms:ddmlib:31.1.4
24+
com.android.tools.layoutlib:layoutlib-api:31.1.4
25+
com.android.tools.lint:lint-model:31.1.4
26+
com.android.tools.lint:lint-typedef-remover:31.1.4
27+
com.android.tools.utp:android-device-provider-ddmlib-proto:31.1.4
28+
com.android.tools.utp:android-device-provider-gradle-proto:31.1.4
29+
com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:31.1.4
30+
com.android.tools.utp:android-test-plugin-host-apk-installer-proto:31.1.4
31+
com.android.tools.utp:android-test-plugin-host-coverage-proto:31.1.4
32+
com.android.tools.utp:android-test-plugin-host-emulator-control-proto:31.1.4
33+
com.android.tools.utp:android-test-plugin-host-logcat-proto:31.1.4
34+
com.android.tools.utp:android-test-plugin-host-retention-proto:31.1.4
35+
com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:31.1.4
36+
com.android.tools:annotations:31.1.4
37+
com.android.tools:common:31.1.4
38+
com.android.tools:dvlib:31.1.4
39+
com.android.tools:repository:31.1.4
40+
com.android.tools:sdk-common:31.1.4
41+
com.android.tools:sdklib:31.1.4
42+
com.android:signflinger:8.1.4
43+
com.android:zipflinger:8.1.4
4144
com.diffplug.durian:durian-collect:1.2.0
4245
com.diffplug.durian:durian-core:1.2.0
4346
com.diffplug.durian:durian-io:1.2.0
@@ -53,24 +56,24 @@ com.google.api.grpc:proto-google-common-protos:2.0.1
5356
com.google.auto.value:auto-value-annotations:1.6.2
5457
com.google.code.findbugs:jsr305:3.0.2
5558
com.google.code.gson:gson:2.8.9
56-
com.google.crypto.tink:tink:1.3.0-rc2
59+
com.google.crypto.tink:tink:1.7.0
5760
com.google.dagger:dagger:2.28.3
5861
com.google.dagger:hilt-android-gradle-plugin:2.45
5962
com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin:1.8.10-1.0.9
6063
com.google.devtools.ksp:symbol-processing-gradle-plugin:1.8.10-1.0.9
61-
com.google.errorprone:error_prone_annotations:2.4.0
64+
com.google.errorprone:error_prone_annotations:2.11.0
6265
com.google.firebase:firebase-crashlytics-buildtools:2.9.2
6366
com.google.firebase:firebase-crashlytics-gradle:2.9.2
6467
com.google.firebase:perf-plugin:1.4.2
6568
com.google.flatbuffers:flatbuffers-java:1.12.0
6669
com.google.gms:google-services:4.3.14
6770
com.google.guava:failureaccess:1.0.1
68-
com.google.guava:guava:30.1-jre
71+
com.google.guava:guava:31.1-jre
6972
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
7073
com.google.j2objc:j2objc-annotations:1.3
7174
com.google.jimfs:jimfs:1.1
72-
com.google.protobuf:protobuf-java-util:3.17.2
73-
com.google.protobuf:protobuf-java:3.17.2
75+
com.google.protobuf:protobuf-java-util:3.19.3
76+
com.google.protobuf:protobuf-java:3.19.3
7477
com.google.testing.platform:core-proto:0.0.8-alpha08
7578
com.googlecode.concurrent-trees:concurrent-trees:2.6.1
7679
com.googlecode.javaewah:JavaEWAH:1.1.13
@@ -83,23 +86,24 @@ com.sun.xml.fastinfoset:FastInfoset:1.2.16
8386
commons-codec:commons-codec:1.11
8487
commons-io:commons-io:2.4
8588
commons-logging:commons-logging:1.2
86-
io.grpc:grpc-api:1.39.0
87-
io.grpc:grpc-context:1.39.0
88-
io.grpc:grpc-core:1.39.0
89-
io.grpc:grpc-netty:1.39.0
90-
io.grpc:grpc-protobuf-lite:1.39.0
91-
io.grpc:grpc-protobuf:1.39.0
92-
io.grpc:grpc-stub:1.39.0
93-
io.netty:netty-buffer:4.1.52.Final
94-
io.netty:netty-codec-http2:4.1.52.Final
95-
io.netty:netty-codec-http:4.1.52.Final
96-
io.netty:netty-codec-socks:4.1.52.Final
97-
io.netty:netty-codec:4.1.52.Final
98-
io.netty:netty-common:4.1.52.Final
99-
io.netty:netty-handler-proxy:4.1.52.Final
100-
io.netty:netty-handler:4.1.52.Final
101-
io.netty:netty-resolver:4.1.52.Final
102-
io.netty:netty-transport:4.1.52.Final
89+
io.grpc:grpc-api:1.45.1
90+
io.grpc:grpc-context:1.45.1
91+
io.grpc:grpc-core:1.45.1
92+
io.grpc:grpc-netty:1.45.1
93+
io.grpc:grpc-protobuf-lite:1.45.1
94+
io.grpc:grpc-protobuf:1.45.1
95+
io.grpc:grpc-stub:1.45.1
96+
io.netty:netty-buffer:4.1.72.Final
97+
io.netty:netty-codec-http2:4.1.72.Final
98+
io.netty:netty-codec-http:4.1.72.Final
99+
io.netty:netty-codec-socks:4.1.72.Final
100+
io.netty:netty-codec:4.1.72.Final
101+
io.netty:netty-common:4.1.72.Final
102+
io.netty:netty-handler-proxy:4.1.72.Final
103+
io.netty:netty-handler:4.1.72.Final
104+
io.netty:netty-resolver:4.1.72.Final
105+
io.netty:netty-tcnative-classes:2.0.46.Final
106+
io.netty:netty-transport:4.1.72.Final
103107
io.perfmark:perfmark-api:0.23.0
104108
jakarta.activation:jakarta.activation-api:1.2.1
105109
jakarta.xml.bind:jakarta.xml.bind-api:2.3.2
@@ -109,14 +113,14 @@ net.java.dev.jna:jna-platform:5.6.0
109113
net.java.dev.jna:jna:5.6.0
110114
net.sf.jopt-simple:jopt-simple:4.9
111115
net.sf.kxml:kxml2:2.3.0
112-
org.apache.commons:commons-compress:1.20
116+
org.apache.commons:commons-compress:1.21
113117
org.apache.httpcomponents:httpclient:4.5.13
114-
org.apache.httpcomponents:httpcore:4.4.13
118+
org.apache.httpcomponents:httpcore:4.4.15
115119
org.apache.httpcomponents:httpmime:4.5.6
116120
org.bitbucket.b_c:jose4j:0.7.0
117121
org.bouncycastle:bcpkix-jdk15on:1.67
118122
org.bouncycastle:bcprov-jdk15on:1.67
119-
org.checkerframework:checker-qual:3.5.0
123+
org.checkerframework:checker-qual:3.12.0
120124
org.codehaus.groovy:groovy-xml:3.0.10
121125
org.codehaus.groovy:groovy:3.0.10
122126
org.codehaus.mojo:animal-sniffer-annotations:1.19
@@ -141,22 +145,21 @@ org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.10
141145
org.jetbrains.kotlin:kotlin-klib-commonizer-api:1.8.10
142146
org.jetbrains.kotlin:kotlin-native-utils:1.8.10
143147
org.jetbrains.kotlin:kotlin-project-model:1.8.10
144-
org.jetbrains.kotlin:kotlin-reflect:1.7.10
148+
org.jetbrains.kotlin:kotlin-reflect:1.8.20-RC2
145149
org.jetbrains.kotlin:kotlin-scripting-common:1.8.10
146150
org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.8.10
147151
org.jetbrains.kotlin:kotlin-scripting-compiler-impl-embeddable:1.8.10
148152
org.jetbrains.kotlin:kotlin-scripting-jvm:1.8.10
149153
org.jetbrains.kotlin:kotlin-serialization:1.8.10
150-
org.jetbrains.kotlin:kotlin-stdlib-common:1.8.0
151-
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.0
152-
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.0
153-
org.jetbrains.kotlin:kotlin-stdlib:1.8.0
154+
org.jetbrains.kotlin:kotlin-stdlib-common:1.8.20-RC2
155+
org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.20-RC2
156+
org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.20-RC2
157+
org.jetbrains.kotlin:kotlin-stdlib:1.8.20-RC2
154158
org.jetbrains.kotlin:kotlin-tooling-core:1.8.10
155159
org.jetbrains.kotlin:kotlin-util-io:1.8.10
156160
org.jetbrains.kotlin:kotlin-util-klib:1.8.10
157161
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0
158162
org.jetbrains:annotations:13.0
159-
org.json:json:20180813
160163
org.jvnet.staxex:stax-ex:1.8.1
161164
org.ow2.asm:asm-analysis:9.2
162165
org.ow2.asm:asm-commons:9.2

β€Žfeature/notification-impl/src/main/java/soup/movie/feature/notification/impl/ShowPushNotificationUseCaseImpl.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package soup.movie.feature.notification.impl
1717

1818
import android.app.PendingIntent
1919
import android.content.Context
20+
import android.os.Build
2021
import dagger.hilt.android.qualifiers.ApplicationContext
2122
import soup.movie.feature.navigator.AppNavigator
2223
import soup.movie.feature.notification.ShowPushNotificationUseCase
@@ -64,7 +65,12 @@ class ShowPushNotificationUseCaseImpl @Inject constructor(
6465

6566
private fun createLauncherIntent(): PendingIntent {
6667
val intent = navigator.createIntentToMain()
67-
return PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT)
68+
val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
69+
PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_MUTABLE
70+
} else {
71+
PendingIntent.FLAG_ONE_SHOT
72+
}
73+
return PendingIntent.getActivity(context, 0, intent, flags)
6874
}
6975

7076
companion object {

β€Žgradle.properties

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99

1010
# Specifies the JVM arguments used for the daemon process.
1111
# The setting is particularly useful for tweaking memory settings.
12-
org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
12+
# Ensure important default jvmargs aren't overwritten. See https://github.com/gradle/gradle/issues/19750
13+
org.gradle.jvmargs=-Xmx6g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g
14+
1315
org.gradle.parallel=true
1416
org.gradle.caching=true
1517
org.gradle.configureondemand=true
@@ -21,16 +23,18 @@ org.gradle.configureondemand=true
2123
android.useAndroidX=true
2224
android.enableJetifier=true
2325

24-
# Allow data binding to be incremental
25-
android.databinding.incremental=true
26-
2726
# Allow kapt to use workers, incremental processing
2827
kapt.incremental.apt=true
2928
kapt.include.compile.classpath=false
3029

3130
# Non-transitive R classes is recommended and is faster/smaller
3231
android.nonTransitiveRClass=true
3332

33+
# Default values changed on AGP 8.0
34+
# https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes#default-changes
35+
android.nonFinalResIds=false
36+
android.enableR8.fullMode=false
37+
3438
# Default build features
3539
android.defaults.buildfeatures.buildconfig=false
3640
android.defaults.buildfeatures.aidl=false

0 commit comments

Comments
Β (0)