From 5cb29988d8ebb4c9625af6452f7931d0e68d1cb7 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 2 Nov 2026 11:09:19 +0100 Subject: build: update to Gradle 9.8.2, AGP 9.5.0, Kotlin 2.4.21, Hilt 2.60.1 AGP 9 migration: - Configure the shared Android setup through the new DSL (CommonExtension, ApplicationExtension) instead of the removed TestedExtension and BaseAppModuleExtension; targetSdk moves to the application extension. - Stop applying the Kotlin Android plugin; AGP 9 compiles Kotlin itself. - Replace kapt with KSP 2.3.13 for Hilt, which built-in Kotlin requires, and carry the Dagger compiler options over as KSP arguments. - AGP 9 now applies packaging excludes to unit-test resources, which stripped the diceware word list (**/*.txt) from its tests; lift that exclude in the diceware module. - Use resources.directories instead of the deprecated srcDir. Plugin updates required by Gradle 9 / AGP 9: Sentry Gradle plugin 6.25.0 (sentry-android 8.62.0), metalava plugin 0.5.1, maven-publish 0.37.0, spotless 8.10.4, version-catalog-update 1.1.2, download task 5.7.0, foojay resolver 1.0.0, with their API changes. Newer metalava models Kotlin properties, so autofill-parser/api.txt is regenerated; the diff is representation only, no API was added or removed. Fix new Kotlin 2.4 and lint findings (explicit return type in a function with an early return, UseKtx in autofill-parser), drop deprecated Kotlin Gradle properties, and make the AGENTS.md pre-commit command cover every task CI runs (both flavors, lint on all modules). Co-Authored-By: Claude Opus 5.5 --- gradle/libs.versions.toml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'gradle/libs.versions.toml') diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8cc0acf2..fb831d85 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -agp = "8.13.2" +agp = "9.5.0" androidxActivity = "1.9.2" bouncycastle = "1.86" coroutines = "1.9.0" flowbinding = "1.2.0" -hilt = "2.58" -kotlin = "2.1.21" +hilt = "2.60.1" +kotlin = "2.4.21" kotlinResult = "2.0.0" lifecycle = "2.8.6" moshi = "1.15.1" @@ -36,18 +36,18 @@ aps-sublimeFuzzy = "com.github.android-password-store:sublime-fuzzy:2.3.4" aps-zxingAndroidEmbedded = "com.github.android-password-store:zxing-android-embedded:4.2.1" build-agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } build-diffutils = "io.github.java-diff-utils:java-diff-utils:4.12" -build-download = "de.undercouch:gradle-download-task:5.6.0" +build-download = "de.undercouch:gradle-download-task:5.7.0" build-javapoet = "com.squareup:javapoet:1.13.0" build-kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -build-mavenpublish = "com.vanniktech:gradle-maven-publish-plugin:0.29.0" -build-metalava = "me.tylerbwong.gradle.metalava:plugin:0.3.5" +build-mavenpublish = "com.vanniktech:gradle-maven-publish-plugin:0.37.0" +build-metalava = "me.tylerbwong.gradle.metalava:plugin:0.5.1" build-moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" } build-moshi-kotlin = { module = "com.squareup.moshi:moshi-kotlin", version.ref = "moshi" } build-okhttp = "com.squareup.okhttp3:okhttp:5.0.0-alpha.14" build-semver = "com.github.zafarkhaja:java-semver:0.10.2" -build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:4.11.0" -build-spotless = "com.diffplug.spotless:spotless-plugin-gradle:7.0.0.BETA2" -build-vcu = "nl.littlerobots.version-catalog-update:nl.littlerobots.version-catalog-update.gradle.plugin:0.8.4" +build-sentry = "io.sentry.android.gradle:io.sentry.android.gradle.gradle.plugin:6.25.0" +build-spotless = "com.diffplug.spotless:spotless-plugin-gradle:8.10.4" +build-vcu = "nl.littlerobots.version-catalog-update:nl.littlerobots.version-catalog-update.gradle.plugin:1.1.2" compose-bom = "androidx.compose:compose-bom:2024.09.03" compose-foundation-core = { module = "androidx.compose.foundation:foundation" } compose-foundation-layout = { module = "androidx.compose.foundation:foundation-layout" } @@ -86,7 +86,7 @@ thirdparty-leakcanary-plumber = "com.squareup.leakcanary:plumber-android-startup thirdparty-logcat = "com.squareup.logcat:logcat:0.1" thirdparty-modernAndroidPrefs = "de.maxr1998:modernandroidpreferences:2.4.0-beta2" thirdparty-nonfree-googlePlayAuthApiPhone = "com.google.android.gms:play-services-auth-api-phone:18.1.0" -thirdparty-nonfree-sentry = "io.sentry:sentry-android:7.15.0" +thirdparty-nonfree-sentry = "io.sentry:sentry-android:8.62.0" thirdparty-pgpainless = "org.pgpainless:pgpainless-core:1.7.8" thirdparty-slack-lints = "com.slack.lint:slack-lint-checks:0.8.0" thirdparty-slf4j-api = { module = "org.slf4j:slf4j-api", version = { strictly = "[1.7, 1.8[", prefer = "1.7.36" } } @@ -106,4 +106,5 @@ testDependencies = [ [plugins] hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +ksp = "com.google.devtools.ksp:2.3.13" kotlin-composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } -- cgit v1.2.3