diff options
| author | Danilo M. <danix@danix.xyz> | 2026-11-02 11:09:19 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-11-02 11:09:19 +0100 |
| commit | 5cb29988d8ebb4c9625af6452f7931d0e68d1cb7 (patch) | |
| tree | de206444c7c6eca3627c0cd006619770ec253052 /build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt | |
| parent | 9eec620a4d95c4e3217f0868af0fc7f7bada5c91 (diff) | |
| download | HardenedPass-5cb29988d8ebb4c9625af6452f7931d0e68d1cb7.tar.gz HardenedPass-5cb29988d8ebb4c9625af6452f7931d0e68d1cb7.zip | |
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 <noreply@anthropic.com>
Diffstat (limited to 'build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt')
| -rw-r--r-- | build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt | 37 |
1 files changed, 16 insertions, 21 deletions
diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt index a26faea9..94b9c112 100644 --- a/build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/AndroidCommon.kt @@ -8,37 +8,29 @@ package app.passwordstore.gradle import app.passwordstore.gradle.LintConfig.configureLint import app.passwordstore.gradle.flavors.configureSlimTests import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.CommonExtension import com.android.build.api.dsl.LibraryExtension -import com.android.build.gradle.TestedExtension import org.gradle.accessors.dm.LibrariesForLibs import org.gradle.api.Project import org.gradle.api.tasks.testing.Test -import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.findByType import org.gradle.kotlin.dsl.withType object AndroidCommon { fun configure(project: Project) { - project.extensions.configure<TestedExtension> { - compileSdkVersion(35) - defaultConfig { - minSdk = 26 - targetSdk = 34 - } + project.extensions.getByType(CommonExtension::class.java).apply { + compileSdk = 35 + defaultConfig.minSdk = 26 - packagingOptions { - resources.excludes.add("**/*.version") - resources.excludes.add("**/*.txt") - resources.excludes.add("**/*.kotlin_module") - resources.excludes.add("**/plugin.properties") - resources.excludes.add("**/META-INF/AL2.0") - resources.excludes.add("**/META-INF/LGPL2.1") - } + packaging.resources.excludes.add("**/*.version") + packaging.resources.excludes.add("**/*.txt") + packaging.resources.excludes.add("**/*.kotlin_module") + packaging.resources.excludes.add("**/plugin.properties") + packaging.resources.excludes.add("**/META-INF/AL2.0") + packaging.resources.excludes.add("**/META-INF/LGPL2.1") - testOptions { - animationsDisabled = true - unitTests.isReturnDefaultValues = true - } + testOptions.animationsDisabled = true + testOptions.unitTests.isReturnDefaultValues = true project.tasks.withType<Test>().configureEach { jvmArgs( @@ -49,7 +41,10 @@ object AndroidCommon { project.configureSlimTests() } - project.extensions.findByType<ApplicationExtension>()?.run { lint.configureLint(project) } + project.extensions.findByType<ApplicationExtension>()?.run { + defaultConfig.targetSdk = 34 + lint.configureLint(project) + } project.extensions.findByType<LibraryExtension>()?.run { lint.configureLint(project) } val libs = project.extensions.getByName("libs") as LibrariesForLibs project.dependencies.apply { |
