Bug 1810951 - Implement Glean-based crash pings in Fenix
[gecko.git] / mobile / android / android-components / plugins / dependencies / src / main / java / DependenciesPlugin.kt
blob52076c8d5a76fa6f14b040a10f0447ff09435dae
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 import org.gradle.api.Plugin
6 import org.gradle.api.initialization.Settings
8 // If you ever need to force a toolchain rebuild (taskcluster) then edit the following comment.
9 // FORCE REBUILD 2023-03-06
11 class DependenciesPlugin : Plugin<Settings> {
12     override fun apply(settings: Settings) = Unit
15 // Synchronized version numbers for dependencies used by (some) modules
16 object Versions {
17     const val kotlin = "1.8.10"
18     const val coroutines = "1.6.4"
19     const val serialization = "1.4.1"
21     const val junit = "4.13.2"
22     const val robolectric = "4.9.2"
23     const val mockito = "3.12.4"
24     const val maven_ant_tasks = "2.1.3"
26     // TO-DO: These could be kept in sync in the future
27     const val mockwebserver = "3.10.0"
28     const val okhttp = "3.13.1"
30     const val android_gradle_plugin = "7.4.1"
32     // This has to be synced to the gradlew plugin version. See
33     // http://googlesamples.github.io/android-custom-lint-rules/api-guide/example.md.html#example:samplelintcheckgithubproject/lintversion?
34     const val lint = "30.4.1"
35     const val detekt = "1.19.0"
37     const val sentry_latest = "6.15.0"
39     // zxing 3.4+ requires a minimum API of 24 or higher
40     const val zxing = "3.3.3"
42     const val jna = "5.12.1"
43     const val disklrucache = "2.0.2"
44     const val leakcanary = "2.10"
46     const val mozilla_appservices = "97.1.0"
48     // DO NOT MODIFY MANUALLY. This is auto-updated along with GeckoView.
49     const val mozilla_glean = "52.3.0"
51     const val material = "1.2.1"
52     const val ksp = "1.0.9"
54     // see https://android-developers.googleblog.com/2022/06/independent-versioning-of-Jetpack-Compose-libraries.html
55     // for Jetpack Compose libraries versioning
56     const val compose_version = "1.3.1"
57     const val compose_compiler = "1.4.3"
59     object AndroidX {
60         const val activityCompose = "1.4.0"
61         const val annotation = "1.5.0"
62         const val appcompat = "1.3.0"
63         const val autofill = "1.1.0"
64         const val browser = "1.3.0"
65         const val biometric = "1.1.0"
66         const val cardview = "1.0.0"
67         const val compose = compose_version
68         const val constraintlayout = "2.0.4"
69         const val coordinatorlayout = "1.1.0"
70         const val core = "1.8.0"
71         const val fragment = "1.5.1"
72         const val recyclerview = "1.2.0"
73         const val test = "1.5.0"
74         const val test_ext = "1.1.5"
75         const val test_runner = "1.5.2"
76         const val espresso = "3.5.1"
77         const val room = "2.4.3"
78         const val savedstate = "1.2.0"
79         const val paging = "2.1.2"
80         const val palette = "1.0.0"
81         const val preferences = "1.1.1"
82         const val lifecycle = "2.5.1"
83         const val media = "1.2.0"
84         const val navigation = "2.5.1"
85         const val work = "2.7.1"
86         const val arch = "2.1.0"
87         const val uiautomator = "2.2.0"
88         const val localbroadcastmanager = "1.0.0"
89         const val swiperefreshlayout = "1.1.0"
90     }
92     object Firebase {
93         const val messaging = "23.0.8"
94     }
97 // Synchronized dependencies used by (some) modules
98 @Suppress("Unused", "MaxLineLength")
99 object ComponentsDependencies {
100     const val kotlin_coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}"
101     const val kotlin_reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"
102     const val kotlin_json = "org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.serialization}"
104     const val testing_junit = "junit:junit:${Versions.junit}"
105     const val testing_robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
106     const val testing_mockito = "org.mockito:mockito-core:${Versions.mockito}"
107     const val testing_mockwebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockwebserver}"
108     const val testing_coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}"
109     const val testing_maven_ant_tasks = "org.apache.maven:maven-ant-tasks:${Versions.maven_ant_tasks}"
110     const val testing_leakcanary = "com.squareup.leakcanary:leakcanary-android-instrumentation:${Versions.leakcanary}"
112     const val androidx_activity_compose = "androidx.activity:activity-compose:${Versions.AndroidX.activityCompose}"
113     const val androidx_annotation = "androidx.annotation:annotation:${Versions.AndroidX.annotation}"
114     const val androidx_appcompat = "androidx.appcompat:appcompat:${Versions.AndroidX.appcompat}"
115     const val androidx_autofill = "androidx.autofill:autofill:${Versions.AndroidX.autofill}"
116     const val androidx_arch_core_common = "androidx.arch.core:core-common:${Versions.AndroidX.arch}"
117     const val androidx_arch_core_testing = "androidx.arch.core:core-testing:${Versions.AndroidX.arch}"
118     const val androidx_biometric = "androidx.biometric:biometric:${Versions.AndroidX.biometric}"
119     const val androidx_browser = "androidx.browser:browser:${Versions.AndroidX.browser}"
120     const val androidx_cardview = "androidx.cardview:cardview:${Versions.AndroidX.cardview}"
121     const val androidx_compose_ui = "androidx.compose.ui:ui:${Versions.AndroidX.compose}"
122     const val androidx_compose_ui_graphics = "androidx.compose.ui:ui-graphics:${Versions.AndroidX.compose}"
123     const val androidx_compose_ui_test = "androidx.compose.ui:ui-test-junit4:${Versions.AndroidX.compose}"
124     const val androidx_compose_ui_test_manifest = "androidx.compose.ui:ui-test-manifest:${Versions.AndroidX.compose}"
125     const val androidx_compose_ui_tooling = "androidx.compose.ui:ui-tooling:${Versions.AndroidX.compose}"
126     const val androidx_compose_foundation = "androidx.compose.foundation:foundation:${Versions.AndroidX.compose}"
127     const val androidx_compose_material = "androidx.compose.material:material:${Versions.AndroidX.compose}"
128     const val androidx_compose_navigation = "androidx.navigation:navigation-compose:${Versions.AndroidX.navigation}"
129     const val androidx_constraintlayout = "androidx.constraintlayout:constraintlayout:${Versions.AndroidX.constraintlayout}"
130     const val androidx_core = "androidx.core:core:${Versions.AndroidX.core}"
131     const val androidx_core_ktx = "androidx.core:core-ktx:${Versions.AndroidX.core}"
132     const val androidx_coordinatorlayout = "androidx.coordinatorlayout:coordinatorlayout:${Versions.AndroidX.coordinatorlayout}"
133     const val androidx_fragment = "androidx.fragment:fragment:${Versions.AndroidX.fragment}"
134     const val androidx_lifecycle_livedata = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.AndroidX.lifecycle}"
135     const val androidx_lifecycle_runtime = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.AndroidX.lifecycle}"
136     const val androidx_lifecycle_service = "androidx.lifecycle:lifecycle-service:${Versions.AndroidX.lifecycle}"
137     const val androidx_lifecycle_process = "androidx.lifecycle:lifecycle-process:${Versions.AndroidX.lifecycle}"
138     const val androidx_lifecycle_compiler = "androidx.lifecycle:lifecycle-compiler:${Versions.AndroidX.lifecycle}"
139     const val androidx_lifecycle_viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.AndroidX.lifecycle}"
140     const val androidx_media = "androidx.media:media:${Versions.AndroidX.media}"
141     const val androidx_paging = "androidx.paging:paging-runtime:${Versions.AndroidX.paging}"
142     const val androidx_palette = "androidx.palette:palette-ktx:${Versions.AndroidX.palette}"
143     const val androidx_preferences = "androidx.preference:preference-ktx:${Versions.AndroidX.preferences}"
144     const val androidx_recyclerview = "androidx.recyclerview:recyclerview:${Versions.AndroidX.recyclerview}"
145     const val androidx_room_runtime = "androidx.room:room-ktx:${Versions.AndroidX.room}"
146     const val androidx_room_compiler = "androidx.room:room-compiler:${Versions.AndroidX.room}"
147     const val androidx_room_testing = "androidx.room:room-testing:${Versions.AndroidX.room}"
148     const val androidx_savedstate = "androidx.savedstate:savedstate:${Versions.AndroidX.savedstate}"
149     const val androidx_test_core = "androidx.test:core-ktx:${Versions.AndroidX.test}"
150     const val androidx_test_junit = "androidx.test.ext:junit-ktx:${Versions.AndroidX.test_ext}"
151     const val androidx_test_runner = "androidx.test:runner:${Versions.AndroidX.test_runner}"
152     const val androidx_test_rules = "androidx.test:rules:${Versions.AndroidX.test}"
153     const val androidx_test_uiautomator = "androidx.test.uiautomator:uiautomator:${Versions.AndroidX.uiautomator}"
154     const val androidx_work_runtime = "androidx.work:work-runtime-ktx:${Versions.AndroidX.work}"
155     const val androidx_work_testing = "androidx.work:work-testing:${Versions.AndroidX.work}"
156     const val androidx_espresso_core = "androidx.test.espresso:espresso-core:${Versions.AndroidX.espresso}"
157     const val androidx_localbroadcastmanager = "androidx.localbroadcastmanager:localbroadcastmanager:${Versions.AndroidX.localbroadcastmanager}"
158     const val androidx_swiperefreshlayout = "androidx.swiperefreshlayout:swiperefreshlayout:${Versions.AndroidX.swiperefreshlayout}"
160     const val google_material = "com.google.android.material:material:${Versions.material}"
162     const val plugin_ksp = "com.google.devtools.ksp:symbol-processing-gradle-plugin:${Versions.kotlin}-${Versions.ksp}"
163     const val plugin_serialization = "org.jetbrains.kotlin.plugin.serialization:org.jetbrains.kotlin.plugin.serialization.gradle.plugin:${Versions.kotlin}"
165     const val leakcanary = "com.squareup.leakcanary:leakcanary-android:${Versions.leakcanary}"
167     const val tools_androidgradle = "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
168     const val tools_kotlingradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
170     const val tools_lint = "com.android.tools.lint:lint:${Versions.lint}"
171     const val tools_lintapi = "com.android.tools.lint:lint-api:${Versions.lint}"
172     const val tools_lintchecks = "com.android.tools.lint:lint-checks:${Versions.lint}"
173     const val tools_linttests = "com.android.tools.lint:lint-tests:${Versions.lint}"
175     const val tools_detekt_api = "io.gitlab.arturbosch.detekt:detekt-api:${Versions.detekt}"
176     const val tools_detekt_test = "io.gitlab.arturbosch.detekt:detekt-test:${Versions.detekt}"
178     val mozilla_geckoview = "org.mozilla.geckoview:${Gecko.channel.artifactName}:${Gecko.version}"
179     const val mozilla_fxa = "org.mozilla.appservices:fxaclient:${Versions.mozilla_appservices}"
180     const val mozilla_nimbus = "org.mozilla.appservices:nimbus:${Versions.mozilla_appservices}"
181     const val mozilla_glean_forUnitTests = "org.mozilla.telemetry:glean-native-forUnitTests:${Versions.mozilla_glean}"
182     const val mozilla_sync_autofill = "org.mozilla.appservices:autofill:${Versions.mozilla_appservices}"
183     const val mozilla_sync_logins = "org.mozilla.appservices:logins:${Versions.mozilla_appservices}"
184     const val mozilla_places = "org.mozilla.appservices:places:${Versions.mozilla_appservices}"
185     const val mozilla_sync_manager = "org.mozilla.appservices:syncmanager:${Versions.mozilla_appservices}"
186     const val mozilla_push = "org.mozilla.appservices:push:${Versions.mozilla_appservices}"
187     const val mozilla_remote_tabs = "org.mozilla.appservices:tabs:${Versions.mozilla_appservices}"
188     const val mozilla_httpconfig = "org.mozilla.appservices:httpconfig:${Versions.mozilla_appservices}"
189     const val mozilla_full_megazord = "org.mozilla.appservices:full-megazord:${Versions.mozilla_appservices}"
190     const val mozilla_full_megazord_forUnitTests = "org.mozilla.appservices:full-megazord-forUnitTests:${Versions.mozilla_appservices}"
192     const val mozilla_errorsupport = "org.mozilla.appservices:errorsupport:${Versions.mozilla_appservices}"
193     const val mozilla_rustlog = "org.mozilla.appservices:rustlog:${Versions.mozilla_appservices}"
194     const val mozilla_sync15 = "org.mozilla.appservices:sync15:${Versions.mozilla_appservices}"
196     const val thirdparty_okhttp = "com.squareup.okhttp3:okhttp:${Versions.okhttp}"
197     const val thirdparty_okhttp_urlconnection = "com.squareup.okhttp3:okhttp-urlconnection:${Versions.okhttp}"
198     const val thirdparty_sentry_latest = "io.sentry:sentry-android:${Versions.sentry_latest}"
199     const val thirdparty_zxing = "com.google.zxing:core:${Versions.zxing}"
200     const val thirdparty_jna = "net.java.dev.jna:jna:${Versions.jna}@jar"
201     const val thirdparty_disklrucache = "com.jakewharton:disklrucache:${Versions.disklrucache}"
203     const val firebase_messaging = "com.google.firebase:firebase-messaging:${Versions.Firebase.messaging}"