Revision control
Copy as Markdown
# In general, these versions should be kept in sync with AC to avoid introducing
# possible conflicts and compatibility issues. This primarily applies to dependencies
# for shipping code, however. Libraries used only for the build system or testing
# can be safely bumped when convenient.
[versions]
# AGP
android-plugin = "8.0.2"
# Kotlin
kotlin-compiler = "1.9.24"
kotlinx-coroutines = "1.8.0"
kotlinx-serialization = "1.6.3"
# Mozilla
rust-android-gradle = "0.9.4"
# AndroidX
androidx-annotation = "1.8.1"
androidx-appcompat = "1.6.1"
androidx-browser = "1.8.0"
androidx-lifecycle = "2.8.4"
androidx-work = "2.9.0"
# JNA
jna = "5.14.0"
# Linting and Static Analysis
detekt = "1.23.6"
ktlint = "0.50.0"
# AndroidX Testing
androidx-test-core = "1.6.1"
androidx-test-espresso = "3.6.1"
androidx-test-junit = "1.2.1"
androidx-test-runner = "1.6.1"
androidx-test-uiautomator = "2.3.0"
# Third Party Testing
junit = "4.13.2"
mockito = "5.12.0"
mockwebserver = "4.12.0"
robolectric = "4.13"
# Miscellaneous Gradle plugins
jacoco = "0.8.12"
python-envs = "0.0.31"
[libraries]
# AGP
tools-android-plugin = { group = "com.android.tools.build", name = "gradle", version.ref = "android-plugin" }
tools-serialization = { group = "org.jetbrains.kotlin", name = "kotlin-serialization", version.ref = "kotlin-compiler" }
# Kotlin
kotlin-gradle-plugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin-compiler" }
kotlinx-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines" }
kotlinx-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinx-serialization" }
# Mozilla
mozilla-rust-android-gradle = { group = "org.mozilla.rust-android-gradle", name = "plugin", version.ref = "rust-android-gradle" }
# AndroidX
androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "androidx-annotation" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" }
androidx-browser = { group = "androidx.browser", name = "browser", version.ref = "androidx-browser" }
androidx-lifecycle-common = { group = "androidx.lifecycle", name = "lifecycle-common", version.ref = "androidx-lifecycle" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidx-lifecycle" }
androidx-work = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidx-work" }
# JNA
jna = { group = "net.java.dev.jna", name = "jna", version.ref = "jna" }
# Linting and Static Analysis
ktlint = { module = "com.pinterest:ktlint", version.ref = "ktlint" }
# AndroidX Testing
test-core = { group = "androidx.test", name = "core-ktx", version.ref = "androidx-test-core" }
test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidx-test-espresso" }
test-junit-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidx-test-junit" }
test-rules = { group = "androidx.test", name = "rules", version.ref = "androidx-test-core" }
test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" }
test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "androidx-test-uiautomator" }
test-work = { group = "androidx.work", name = "work-testing", version.ref = "androidx-work" }
# Third Party Testing
junit = { group = "junit", name = "junit", version.ref = "junit" }
mockito = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }
mockwebserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version.ref = "mockwebserver" }
robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" }
[plugins]
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
gradle-python-envs = { id = "com.jetbrains.python.envs", version.ref = "python-envs" }