android/gradle/libs.versions.toml (104 lines of code) (raw):
[versions]
group = "com.gu.source"
libraryVersion = "0.8.4"
compilesdk = "35"
minsdk = "26"
targetsdk = "34"
java = "17"
agp = "8.9.2"
kotlin = "2.1.20"
# Kotlinter version is tied closely to min & max Kotlin and Gradle versions. Update Kotlinter
# when updating Kotlin. Check compatible versions here:
# https://github.com/jeremymailen/kotlinter-gradle/blob/master/README.md#compatibility
kotlinter = "5.0.1"
activity = "1.10.1"
appcompat = "1.7.0"
coil = "2.7.0"
composeBom = "2025.04.01"
composeLint = "0.4.22"
coreKtx = "1.16.0"
detekt = "1.23.8"
dokka = "2.0.0"
inject = "1"
kotlinx-collections-immutable = "0.3.8"
licensee = "1.13.0"
lifecycleRuntimeKtx = "2.8.7"
lint-gradle = "1.0.0-alpha04"
nexus-publish = "2.0.0"
timber = "5.0.1"
gradle-binary-compatibility = "0.17.0"
metalava = "0.4.0-alpha03"
junit = "4.13.2"
espressoCore = "3.6.1"
androidx-junit = "1.2.1"
androidx-test-core = "1.6.1"
androidx-test-rules = "1.6.1"
androidx-test-runner = "1.6.2"
testparameterinjector = "1.18"
paparazzi = "1.3.5"
# Convention plugin versions
guardian-convention-plugins = "1"
[libraries]
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-compose-material-ripple = { group = "androidx.compose.material", name = "material-ripple" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-compose-material3-windowSize = { group = "androidx.compose.material3", name = "material3-window-size-class" }
androidx-compose-uiTest = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-lint-gradle = { module = "androidx.lint:lint-gradle", version.ref = "lint-gradle" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" }
dokka-android = { module = "org.jetbrains.dokka:android-documentation-plugin", version.ref = "dokka" }
javax-inject = { group = "javax.inject", name = "javax.inject", version.ref = "inject" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
kotlinx-collections-immutable = { group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinx-collections-immutable" }
other-timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timber" }
# This is temporarily required till detekt catches up with the latest Kotlin version
kotlin-compiler-embeddable = { module = "org.jetbrains.kotlin:kotlin-compiler-embeddable", version.ref = "kotlin" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
kotlin-test-junit = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-junit-ktx = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidx-junit" }
androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidx-test-rules" }
androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidx-test-core" }
androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" }
google-testParameterInjector = { group = "com.google.testparameterinjector", name = "test-parameter-injector", version.ref = "testparameterinjector" }
# Dependencies of the included build-logic
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "agp" }
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }
detekt-gradlePlugin = { group = "io.gitlab.arturbosch.detekt", name = "detekt-gradle-plugin", version.ref = "detekt" }
kotlinter-gradlePlugin = { module = "org.jmailen.kotlinter:org.jmailen.kotlinter.gradle.plugin", version.ref = "kotlinter" }
composeCompiler-gradlePlugin = { group = "org.jetbrains.kotlin", name = "compose-compiler-gradle-plugin", version.ref = "kotlin" }
dokka-gradlePlugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" }
# These rules are now maintained independently by Nacho Lopez who originally created them at
# Twitter: https://github.com/mrmans0n/compose-rules
other-composeLint = { group = "io.nlopez.compose.rules", name = "ktlint", version.ref = "composeLint" }
[plugins]
android-lint = { id = "com.android.lint", version.ref = "agp"}
agp-application = { id = "com.android.application", version.ref = "agp" }
agp-library = { id = "com.android.library", version.ref = "agp" }
agp-test = { id = "com.android.test", version.ref = "agp" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
licensee = { id = "app.cash.licensee", version.ref = "licensee" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
kgp = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlinter = { id = "org.jmailen.kotlinter", version.ref = "kotlinter" }
paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi" }
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
gradle-binaryCompatibility = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "gradle-binary-compatibility" }
metalava = { id = "me.tylerbwong.gradle.metalava", version.ref = "metalava"}
nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "nexus-publish" }
# Guardian's convention plugins
guardian-application = { id = "com.theguardian.application", version.ref = "guardian-convention-plugins" }
guardian-library-android = { id = "com.theguardian.library.android", version.ref = "guardian-convention-plugins" }
guardian-test-android = { id = "com.theguardian.test.android", version.ref = "guardian-convention-plugins" }
guardian-library-kotlin = { id = "com.theguardian.library.kotlin", version.ref = "guardian-convention-plugins" }
guardian-compose-library = { id = "com.theguardian.compose.library", version.ref = "guardian-convention-plugins" }
guardian-compose-application = { id = "com.theguardian.compose.application", version.ref = "guardian-convention-plugins" }