From ec784f6d2d5c5b7bc1c4b79d31a019023f5f6b51 Mon Sep 17 00:00:00 2001 From: Don Turner Date: Fri, 5 Apr 2024 17:02:04 +0100 Subject: [PATCH 1/9] Replace kapt with ksp, update versions --- app/build.gradle.kts | 2 +- app/src/debug/AndroidManifest.xml | 3 +- app/src/main/AndroidManifest.xml | 3 +- .../todoapp/addedittask/AddEditTaskScreen.kt | 2 - .../todoapp/data/DefaultTaskRepository.kt | 1 - .../todoapp/statistics/StatisticsScreen.kt | 2 - .../todoapp/taskdetail/TaskDetailScreen.kt | 2 - .../blueprints/todoapp/tasks/TasksScreen.kt | 2 - build.gradle.kts | 1 - gradle.properties | 5 +- gradle/libs.versions.toml | 74 +++++++++---------- gradle/wrapper/gradle-wrapper.properties | 2 +- shared-test/build.gradle.kts | 3 +- 13 files changed, 46 insertions(+), 56 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 457602507..3473d2ba1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,7 +17,6 @@ plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) - alias(libs.plugins.kapt) alias(libs.plugins.ksp) alias(libs.plugins.hilt) } @@ -97,6 +96,7 @@ android { composeOptions { kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get() } + namespace = "com.example.android.architecture.blueprints.todoapp" tasks.withType().configureEach { kotlinOptions { diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml index dbf09ddfc..0c4c62119 100644 --- a/app/src/debug/AndroidManifest.xml +++ b/app/src/debug/AndroidManifest.xml @@ -14,8 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + - + Unit, diff --git a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailScreen.kt b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailScreen.kt index 814377da3..99e3ca8db 100644 --- a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailScreen.kt +++ b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/taskdetail/TaskDetailScreen.kt @@ -42,7 +42,6 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.example.android.architecture.blueprints.todoapp.R import com.example.android.architecture.blueprints.todoapp.data.Task @@ -50,7 +49,6 @@ import com.example.android.architecture.blueprints.todoapp.util.LoadingContent import com.example.android.architecture.blueprints.todoapp.util.TaskDetailTopAppBar import com.google.accompanist.appcompattheme.AppCompatTheme -@OptIn(ExperimentalLifecycleComposeApi::class) @Composable fun TaskDetailScreen( onEditTask: (String) -> Unit, diff --git a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksScreen.kt b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksScreen.kt index 16cf81e86..964512754 100644 --- a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksScreen.kt +++ b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksScreen.kt @@ -53,7 +53,6 @@ import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel -import androidx.lifecycle.compose.ExperimentalLifecycleComposeApi import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.example.android.architecture.blueprints.todoapp.R import com.example.android.architecture.blueprints.todoapp.data.Task @@ -64,7 +63,6 @@ import com.example.android.architecture.blueprints.todoapp.util.LoadingContent import com.example.android.architecture.blueprints.todoapp.util.TasksTopAppBar import com.google.accompanist.appcompattheme.AppCompatTheme -@OptIn(ExperimentalLifecycleComposeApi::class) @Composable fun TasksScreen( @StringRes userMessage: Int, diff --git a/build.gradle.kts b/build.gradle.kts index 79946bd70..232e26416 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,7 +17,6 @@ plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.android.library) apply false alias(libs.plugins.kotlin.android) apply false - alias(libs.plugins.kapt) apply false alias(libs.plugins.ksp) apply false alias(libs.plugins.hilt) apply false } diff --git a/gradle.properties b/gradle.properties index 504538451..92c1b8ee5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,4 +20,7 @@ android.enableJetifier=true android.useAndroidX=true kapt.incremental.apt=true ksp.incremental.apt=true -org.gradle.unsafe.configuration-cache=true \ No newline at end of file +org.gradle.unsafe.configuration-cache=true +android.defaults.buildfeatures.buildconfig=true +android.nonTransitiveRClass=false +android.nonFinalResIds=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c7415dcf8..828a79e5e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,62 +1,62 @@ [versions] -accompanist = "0.28.0" -annotation = "1.5.0" -androidDesugarJdkLibs = "1.2.2" -androidGradlePlugin = "7.4.0" -androidxActivity = "1.6.1" -androidxAppCompat = "1.5.1" -androidxArchCore = "2.1.0" +accompanist = "0.34.0" +annotation = "1.7.1" +androidDesugarJdkLibs = "2.0.4" +androidGradlePlugin = "8.3.1" +androidxActivity = "1.8.2" +androidxAppCompat = "1.6.1" +androidxArchCore = "2.2.0" androidxBrowser = "1.4.0" -androidxComposeBom = "2023.01.00" -androidxComposeCompiler = "1.4.3" +androidxComposeBom = "2024.04.00" +androidxComposeCompiler = "1.5.11" androidxCompose = "1.2.0" -androidxComposeRuntimeTracing = "1.0.0-alpha01" -androidxCore = "1.9.0" -androidxCoreSplashscreen = "1.0.0" +androidxComposeRuntimeTracing = "1.0.0-beta01" +androidxCore = "1.12.0" +androidxCoreSplashscreen = "1.0.1" androidxDataStore = "1.0.0" -androidxEspresso = "3.5.0" -androidxHiltNavigationCompose = "1.0.0" -androidxLifecycle = "2.6.0-alpha03" +androidxEspresso = "3.5.1" +androidxHiltNavigationCompose = "1.2.0" +androidxLifecycle = "2.7.0" androidxMacroBenchmark = "1.1.1" -androidxMetrics = "1.0.0-alpha03" -androidxNavigation = "2.5.3" -androidxProfileinstaller = "1.2.1" +androidxMetrics = "1.0.0-beta01" +androidxNavigation = "2.7.7" +androidxProfileinstaller = "1.3.1" androidxStartup = "1.1.1" androidxTestCore = "1.5.0" -androidxTestExt = "1.1.4" +androidxTestExt = "1.1.5" androidxTestRules = "1.5.0" -androidxTestRunner = "1.5.1" -androidxTracing = "1.1.0" -androidxUiAutomator = "2.2.0" -androidxWindowManager = "1.0.0" -androidxWork = "2.7.1" -coil = "2.2.2" +androidxTestRunner = "1.5.2" +androidxTracing = "1.2.0" +androidxUiAutomator = "2.3.0" +androidxWindowManager = "1.2.0" +androidxWork = "2.9.0" +coil = "2.6.0" # @keep -compileSdk = "33" +compileSdk = "34" hamcrest = "1.3" -hilt = "2.44.2" -hiltExt = "1.0.0" +hilt = "2.51" +hiltExt = "1.2.0" jacoco = "0.8.7" junit4 = "4.13.2" -kotlin = "1.8.10" -kotlinxCoroutines = "1.6.4" -kotlinxDatetime = "0.4.0" -kotlinxSerializationJson = "1.5.0" -ksp = "1.8.10-1.0.9" -lint = "30.3.1" +kotlin = "1.9.23" +kotlinxCoroutines = "1.8.0" +kotlinxDatetime = "0.5.0" +kotlinxSerializationJson = "1.6.3" +ksp = "1.9.22-1.0.18" +lint = "31.3.1" # @keep minSdk = "21" okhttp = "4.10.0" protobuf = "3.21.12" -protobufPlugin = "0.8.19" +protobufPlugin = "0.9.1" retrofit = "2.9.0" retrofitKotlinxSerializationJson = "0.8.0" -room = "2.5.0-rc01" +room = "2.6.1" spotless = "5.12.5" timber = "5.0.1" # @keep targetSdk = "33" -truth = "1.1.2" +truth = "1.4.2" turbine = "0.12.1" [libraries] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8049c684f..17655d0ef 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/shared-test/build.gradle.kts b/shared-test/build.gradle.kts index 2060fc01b..c62628a43 100644 --- a/shared-test/build.gradle.kts +++ b/shared-test/build.gradle.kts @@ -16,7 +16,6 @@ plugins { alias(libs.plugins.android.library) alias(libs.plugins.kotlin.android) - alias(libs.plugins.kapt) alias(libs.plugins.ksp) alias(libs.plugins.hilt) } @@ -39,7 +38,7 @@ dependencies { implementation(libs.androidx.test.rules) implementation(libs.hilt.android.core) implementation(libs.hilt.android.testing) - kapt(libs.hilt.compiler) + ksp(libs.hilt.compiler) // Room implementation(libs.room.runtime) From 684c5ac6d506c90284d692229745bbc10e4956ee Mon Sep 17 00:00:00 2001 From: Don Turner Date: Fri, 5 Apr 2024 17:20:28 +0100 Subject: [PATCH 2/9] Fix tests, bump target SDK --- app/build.gradle.kts | 7 ++++--- gradle.properties | 1 - gradle/libs.versions.toml | 4 ++-- shared-test/build.gradle.kts | 5 +++++ 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3473d2ba1..bd2698f65 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -77,15 +77,16 @@ android { buildFeatures { compose = true + buildConfig = true } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { - jvmTarget = "1.8" + jvmTarget = "17" } packagingOptions { diff --git a/gradle.properties b/gradle.properties index 92c1b8ee5..db9bd11c5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,5 @@ android.useAndroidX=true kapt.incremental.apt=true ksp.incremental.apt=true org.gradle.unsafe.configuration-cache=true -android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 828a79e5e..22dd0bc12 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -42,7 +42,7 @@ kotlin = "1.9.23" kotlinxCoroutines = "1.8.0" kotlinxDatetime = "0.5.0" kotlinxSerializationJson = "1.6.3" -ksp = "1.9.22-1.0.18" +ksp = "1.9.23-1.0.20" lint = "31.3.1" # @keep minSdk = "21" @@ -55,7 +55,7 @@ room = "2.6.1" spotless = "5.12.5" timber = "5.0.1" # @keep -targetSdk = "33" +targetSdk = "34" truth = "1.4.2" turbine = "0.12.1" diff --git a/shared-test/build.gradle.kts b/shared-test/build.gradle.kts index c62628a43..7d6815085 100644 --- a/shared-test/build.gradle.kts +++ b/shared-test/build.gradle.kts @@ -26,6 +26,11 @@ android { defaultConfig { minSdk = libs.versions.minSdk.get().toInt() } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } } dependencies { From f365158a519b1f880574e091f91a218a0ea438ba Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 16:44:01 +0100 Subject: [PATCH 3/9] Update CI to use JDK 17 --- .github/workflows/blueprints.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/blueprints.yaml b/.github/workflows/blueprints.yaml index bb86bc2fe..41caf6a42 100644 --- a/.github/workflows/blueprints.yaml +++ b/.github/workflows/blueprints.yaml @@ -22,10 +22,10 @@ jobs: - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - uses: actions/cache@v2 with: From b526f1fad74f8e4680ef9b34ea21d3b82d4b1e02 Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 16:54:03 +0100 Subject: [PATCH 4/9] Remove deprecated warning (just to trigger fresh CI build, not from cache) --- app/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bd2698f65..d514c9775 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -89,9 +89,9 @@ android { jvmTarget = "17" } - packagingOptions { - excludes += "META-INF/AL2.0" - excludes += "META-INF/LGPL2.1" + packaging { + jniLibs.excludes += "META-INF/AL2.0" + jniLibs.excludes += "META-INF/LGPL2.1" } composeOptions { From e8f59b50c7bd14494a34b2586ffc1b83af13debf Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 16:59:00 +0100 Subject: [PATCH 5/9] Remove kapt from gradle properties and versions.toml --- gradle.properties | 1 - gradle/libs.versions.toml | 1 - 2 files changed, 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index db9bd11c5..538c1593d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,6 @@ org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryErr # org.gradle.parallel=true android.enableJetifier=true android.useAndroidX=true -kapt.incremental.apt=true ksp.incremental.apt=true org.gradle.unsafe.configuration-cache=true android.nonTransitiveRClass=false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 22dd0bc12..e7aee083d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -149,6 +149,5 @@ hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } -kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } From c104e213cbfe6176317ab402f2b9683026feba4e Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 17:02:48 +0100 Subject: [PATCH 6/9] Temporarily disable CI cache to investigate failing build --- .github/workflows/blueprints.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/blueprints.yaml b/.github/workflows/blueprints.yaml index 41caf6a42..195e5a5a5 100644 --- a/.github/workflows/blueprints.yaml +++ b/.github/workflows/blueprints.yaml @@ -27,13 +27,13 @@ jobs: with: java-version: 17 - - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches/modules-* - ~/.gradle/caches/jars-* - ~/.gradle/caches/build-cache-* - key: gradle-${{ hashFiles('checksum.txt') }} + #- uses: actions/cache@v2 + # with: + # path: | + #~/.gradle/caches/modules-* + #~/.gradle/caches/jars-* + #~/.gradle/caches/build-cache-* + #key: gradle-${{ hashFiles('checksum.txt') }} - name: Build project and UnitTest run: ./gradlew assembleDebug compileDebugUnitTestKotlin From 341d1a80570b34d33956e6bf01f51d65a63849da Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 17:12:31 +0100 Subject: [PATCH 7/9] Rebase main --- app/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d514c9775..7eb56f5dc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -129,7 +129,7 @@ dependencies { // Hilt implementation(libs.hilt.android.core) implementation(libs.androidx.hilt.navigation.compose) - kapt(libs.hilt.compiler) + ksp(libs.hilt.compiler) // Jetpack Compose val composeBom = platform(libs.androidx.compose.bom) @@ -167,7 +167,7 @@ dependencies { // JVM tests - Hilt testImplementation(libs.hilt.android.testing) - kaptTest(libs.hilt.compiler) + kspTest(libs.hilt.compiler) // Dependencies for Android unit tests androidTestImplementation(composeBom) @@ -197,5 +197,5 @@ dependencies { // AndroidX Test - Hilt testing androidTestImplementation(libs.hilt.android.testing) - kaptAndroidTest(libs.hilt.compiler) + kspAndroidTest(libs.hilt.compiler) } From be53081595da9b72da5afcd353ef487e38a3c4ad Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 17:13:43 +0100 Subject: [PATCH 8/9] Revert "Temporarily disable CI cache to investigate failing build" This reverts commit c104e213cbfe6176317ab402f2b9683026feba4e. --- .github/workflows/blueprints.yaml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/blueprints.yaml b/.github/workflows/blueprints.yaml index 195e5a5a5..41caf6a42 100644 --- a/.github/workflows/blueprints.yaml +++ b/.github/workflows/blueprints.yaml @@ -27,13 +27,13 @@ jobs: with: java-version: 17 - #- uses: actions/cache@v2 - # with: - # path: | - #~/.gradle/caches/modules-* - #~/.gradle/caches/jars-* - #~/.gradle/caches/build-cache-* - #key: gradle-${{ hashFiles('checksum.txt') }} + - uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches/modules-* + ~/.gradle/caches/jars-* + ~/.gradle/caches/build-cache-* + key: gradle-${{ hashFiles('checksum.txt') }} - name: Build project and UnitTest run: ./gradlew assembleDebug compileDebugUnitTestKotlin From 898d32da3cd06bb065c26b73cf6f8f993bbfb5f3 Mon Sep 17 00:00:00 2001 From: Don Turner Date: Mon, 8 Apr 2024 18:09:55 +0100 Subject: [PATCH 9/9] Fix spotless --- .../blueprints/todoapp/data/DefaultTaskRepository.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/DefaultTaskRepository.kt b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/DefaultTaskRepository.kt index 3f7d4429d..1be692081 100644 --- a/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/DefaultTaskRepository.kt +++ b/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/DefaultTaskRepository.kt @@ -22,7 +22,6 @@ import com.example.android.architecture.blueprints.todoapp.di.ApplicationScope import com.example.android.architecture.blueprints.todoapp.di.DefaultDispatcher import java.util.UUID import javax.inject.Inject -import javax.inject.Singleton import kotlinx.coroutines.CoroutineDispatcher import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow