[fenix] Closes https://github.com/mozilla-mobile/fenix/issues/24276: update paging...
[gecko.git] / mobile / android / fenix / buildSrc / src / main / java / Dependencies.kt
blob72386ba5df2e983cb228f10538c6690982236817
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 // If you ever need to force a toolchain rebuild (taskcluster) then edit the following comment.
6 // FORCE REBUILD 2021-11-24
8 object Versions {
9     const val kotlin = "1.5.31"
10     const val coroutines = "1.5.2"
12     // These versions are linked: lint should be X+23.Y.Z of gradle_plugin version, according to:
13     // https://github.com/alexjlockwood/android-lint-checks-demo/blob/0245fc027463137b1b4afb97c5295d60dce998b6/dependencies.gradle#L3
14     const val android_gradle_plugin = "7.0.0"
15     const val android_lint_api = "30.0.0"
17     const val sentry = "5.6.2"
18     const val leakcanary = "2.8.1"
19     const val osslicenses_plugin = "0.10.4"
20     const val detekt = "1.19.0"
21     const val jna = "5.6.0"
23     const val androidx_activity_compose = "1.4.0"
24     const val androidx_compose = "1.0.5"
25     const val androidx_appcompat = "1.3.0"
26     const val androidx_benchmark = "1.0.0"
27     const val androidx_biometric = "1.1.0"
28     const val androidx_coordinator_layout = "1.1.0"
29     const val androidx_constraint_layout = "2.0.4"
30     const val androidx_preference = "1.1.1"
31     const val androidx_legacy = "1.0.0"
32     const val androidx_annotation = "1.1.0"
33     const val androidx_lifecycle = "2.4.0"
34     const val androidx_fragment = "1.3.4"
35     const val androidx_navigation = "2.3.3"
36     const val androidx_recyclerview = "1.2.1"
37     const val androidx_core = "1.3.2"
38     const val androidx_paging = "3.1.1"
39     const val androidx_transition = "1.4.0"
40     const val androidx_work = "2.7.1"
41     const val androidx_datastore = "1.0.0"
42     const val google_material = "1.2.1"
44     const val mozilla_android_components = AndroidComponents.VERSION
46     const val adjust = "4.18.3"
47     const val installreferrer = "1.0"
49     const val junit = "5.5.2"
50     const val mockk = "1.12.0"
52     const val mockwebserver = "4.9.0"
53     const val uiautomator = "2.2.0"
54     const val robolectric = "4.6.1"
56     const val google_ads_id_version = "16.0.0"
58     const val google_play_store_version = "1.8.0"
60     const val protobuf = "3.11.4" // keep in sync with the version used in AS.
63 @Suppress("unused")
64 object Deps {
65     const val tools_androidgradle = "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
66     const val tools_kotlingradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
67     const val tools_benchmarkgradle = "androidx.benchmark:benchmark-gradle-plugin:${Versions.androidx_benchmark}"
68     const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
69     const val kotlin_stdlib_jdk8 = "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${Versions.kotlin}"
70     const val kotlin_reflect = "org.jetbrains.kotlin:kotlin-reflect:${Versions.kotlin}"
71     const val kotlin_coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}"
72     const val kotlin_coroutines_test = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}"
73     const val kotlin_coroutines_android = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}"
75     const val osslicenses_plugin = "com.google.android.gms:oss-licenses-plugin:${Versions.osslicenses_plugin}"
77     const val mozilla_compose_awesomebar = "org.mozilla.components:compose-awesomebar:${Versions.mozilla_android_components}"
79     const val mozilla_concept_awesomebar = "org.mozilla.components:concept-awesomebar:${Versions.mozilla_android_components}"
80     const val mozilla_concept_base = "org.mozilla.components:concept-base:${Versions.mozilla_android_components}"
81     const val mozilla_concept_engine = "org.mozilla.components:concept-engine:${Versions.mozilla_android_components}"
82     const val mozilla_concept_menu = "org.mozilla.components:concept-menu:${Versions.mozilla_android_components}"
83     const val mozilla_concept_push = "org.mozilla.components:concept-push:${Versions.mozilla_android_components}"
84     const val mozilla_concept_tabstray = "org.mozilla.components:concept-tabstray:${Versions.mozilla_android_components}"
85     const val mozilla_concept_toolbar = "org.mozilla.components:concept-toolbar:${Versions.mozilla_android_components}"
86     const val mozilla_concept_storage = "org.mozilla.components:concept-storage:${Versions.mozilla_android_components}"
87     const val mozilla_concept_sync = "org.mozilla.components:concept-sync:${Versions.mozilla_android_components}"
89     const val mozilla_browser_engine_gecko = "org.mozilla.components:browser-engine-gecko:${Versions.mozilla_android_components}"
90     const val mozilla_browser_domains = "org.mozilla.components:browser-domains:${Versions.mozilla_android_components}"
91     const val mozilla_browser_icons = "org.mozilla.components:browser-icons:${Versions.mozilla_android_components}"
92     const val mozilla_browser_session_storage = "org.mozilla.components:browser-session-storage:${Versions.mozilla_android_components}"
93     const val mozilla_browser_state = "org.mozilla.components:browser-state:${Versions.mozilla_android_components}"
94     const val mozilla_browser_tabstray = "org.mozilla.components:browser-tabstray:${Versions.mozilla_android_components}"
95     const val mozilla_browser_thumbnails = "org.mozilla.components:browser-thumbnails:${Versions.mozilla_android_components}"
96     const val mozilla_browser_toolbar = "org.mozilla.components:browser-toolbar:${Versions.mozilla_android_components}"
97     const val mozilla_browser_menu = "org.mozilla.components:browser-menu:${Versions.mozilla_android_components}"
98     const val mozilla_browser_menu2 = "org.mozilla.components:browser-menu2:${Versions.mozilla_android_components}"
99     const val mozilla_browser_errorpages = "org.mozilla.components:browser-errorpages:${Versions.mozilla_android_components}"
100     const val mozilla_browser_storage_sync = "org.mozilla.components:browser-storage-sync:${Versions.mozilla_android_components}"
102     const val mozilla_feature_addons = "org.mozilla.components:feature-addons:${Versions.mozilla_android_components}"
103     const val mozilla_support_extensions = "org.mozilla.components:support-webextensions:${Versions.mozilla_android_components}"
105     const val mozilla_feature_accounts = "org.mozilla.components:feature-accounts:${Versions.mozilla_android_components}"
106     const val mozilla_feature_app_links = "org.mozilla.components:feature-app-links:${Versions.mozilla_android_components}"
107     const val mozilla_feature_autofill = "org.mozilla.components:feature-autofill:${Versions.mozilla_android_components}"
108     const val mozilla_feature_awesomebar = "org.mozilla.components:feature-awesomebar:${Versions.mozilla_android_components}"
109     const val mozilla_feature_contextmenu = "org.mozilla.components:feature-contextmenu:${Versions.mozilla_android_components}"
110     const val mozilla_feature_customtabs = "org.mozilla.components:feature-customtabs:${Versions.mozilla_android_components}"
111     const val mozilla_feature_intent = "org.mozilla.components:feature-intent:${Versions.mozilla_android_components}"
112     const val mozilla_feature_media = "org.mozilla.components:feature-media:${Versions.mozilla_android_components}"
113     const val mozilla_feature_qr = "org.mozilla.components:feature-qr:${Versions.mozilla_android_components}"
114     const val mozilla_feature_search = "org.mozilla.components:feature-search:${Versions.mozilla_android_components}"
115     const val mozilla_feature_session = "org.mozilla.components:feature-session:${Versions.mozilla_android_components}"
116     const val mozilla_feature_syncedtabs = "org.mozilla.components:feature-syncedtabs:${Versions.mozilla_android_components}"
117     const val mozilla_feature_tabs = "org.mozilla.components:feature-tabs:${Versions.mozilla_android_components}"
118     const val mozilla_feature_downloads = "org.mozilla.components:feature-downloads:${Versions.mozilla_android_components}"
119     const val mozilla_feature_storage = "org.mozilla.components:feature-storage:${Versions.mozilla_android_components}"
120     const val mozilla_feature_prompts = "org.mozilla.components:feature-prompts:${Versions.mozilla_android_components}"
121     const val mozilla_feature_push = "org.mozilla.components:feature-push:${Versions.mozilla_android_components}"
122     const val mozilla_feature_privatemode = "org.mozilla.components:feature-privatemode:${Versions.mozilla_android_components}"
123     const val mozilla_feature_pwa = "org.mozilla.components:feature-pwa:${Versions.mozilla_android_components}"
124     const val mozilla_feature_toolbar = "org.mozilla.components:feature-toolbar:${Versions.mozilla_android_components}"
125     const val mozilla_feature_findinpage = "org.mozilla.components:feature-findinpage:${Versions.mozilla_android_components}"
126     const val mozilla_feature_logins = "org.mozilla.components:feature-logins:${Versions.mozilla_android_components}"
127     const val mozilla_feature_site_permissions = "org.mozilla.components:feature-sitepermissions:${Versions.mozilla_android_components}"
128     const val mozilla_feature_readerview = "org.mozilla.components:feature-readerview:${Versions.mozilla_android_components}"
129     const val mozilla_feature_tab_collections = "org.mozilla.components:feature-tab-collections:${Versions.mozilla_android_components}"
130     const val mozilla_feature_recentlyclosed = "org.mozilla.components:feature-recentlyclosed:${Versions.mozilla_android_components}"
131     const val mozilla_feature_accounts_push = "org.mozilla.components:feature-accounts-push:${Versions.mozilla_android_components}"
132     const val mozilla_feature_top_sites = "org.mozilla.components:feature-top-sites:${Versions.mozilla_android_components}"
133     const val mozilla_feature_share = "org.mozilla.components:feature-share:${Versions.mozilla_android_components}"
134     const val mozilla_feature_webauthn = "org.mozilla.components:feature-webauthn:${Versions.mozilla_android_components}"
135     const val mozilla_feature_webcompat = "org.mozilla.components:feature-webcompat:${Versions.mozilla_android_components}"
136     const val mozilla_feature_webnotifications = "org.mozilla.components:feature-webnotifications:${Versions.mozilla_android_components}"
137     const val mozilla_feature_webcompat_reporter = "org.mozilla.components:feature-webcompat-reporter:${Versions.mozilla_android_components}"
138     const val mozilla_service_pocket = "org.mozilla.components:service-pocket:${Versions.mozilla_android_components}"
140     const val mozilla_service_contile =
141         "org.mozilla.components:service-contile:${Versions.mozilla_android_components}"
142     const val mozilla_service_digitalassetlinks =
143         "org.mozilla.components:service-digitalassetlinks:${Versions.mozilla_android_components}"
144     const val mozilla_service_sync_autofill =
145         "org.mozilla.components:service-sync-autofill:${Versions.mozilla_android_components}"
146     const val mozilla_service_sync_logins =
147         "org.mozilla.components:service-sync-logins:${Versions.mozilla_android_components}"
148     const val mozilla_service_firefox_accounts = "org.mozilla.components:service-firefox-accounts:${Versions.mozilla_android_components}"
149     const val mozilla_service_glean = "org.mozilla.components:service-glean:${Versions.mozilla_android_components}"
150     const val mozilla_service_location = "org.mozilla.components:service-location:${Versions.mozilla_android_components}"
151     const val mozilla_service_nimbus = "org.mozilla.components:service-nimbus:${Versions.mozilla_android_components}"
153     const val mozilla_ui_colors = "org.mozilla.components:ui-colors:${Versions.mozilla_android_components}"
154     const val mozilla_ui_icons = "org.mozilla.components:ui-icons:${Versions.mozilla_android_components}"
155     const val mozilla_ui_widgets = "org.mozilla.components:ui-widgets:${Versions.mozilla_android_components}"
156     const val mozilla_ui_tabcounter = "org.mozilla.components:ui-tabcounter:${Versions.mozilla_android_components}"
158     const val mozilla_lib_crash = "org.mozilla.components:lib-crash:${Versions.mozilla_android_components}"
159     const val lib_crash_sentry =
160         "org.mozilla.components:lib-crash-sentry:${Versions.mozilla_android_components}"
161     const val mozilla_lib_push_firebase = "org.mozilla.components:lib-push-firebase:${Versions.mozilla_android_components}"
162     const val mozilla_lib_dataprotect = "org.mozilla.components:lib-dataprotect:${Versions.mozilla_android_components}"
163     const val mozilla_lib_state = "org.mozilla.components:lib-state:${Versions.mozilla_android_components}"
165     const val mozilla_lib_publicsuffixlist = "org.mozilla.components:lib-publicsuffixlist:${Versions.mozilla_android_components}"
167     const val mozilla_support_base = "org.mozilla.components:support-base:${Versions.mozilla_android_components}"
168     const val mozilla_support_images = "org.mozilla.components:support-images:${Versions.mozilla_android_components}"
169     const val mozilla_support_ktx = "org.mozilla.components:support-ktx:${Versions.mozilla_android_components}"
170     const val mozilla_support_rusthttp = "org.mozilla.components:support-rusthttp:${Versions.mozilla_android_components}"
171     const val mozilla_support_rustlog = "org.mozilla.components:support-rustlog:${Versions.mozilla_android_components}"
172     const val mozilla_support_utils = "org.mozilla.components:support-utils:${Versions.mozilla_android_components}"
173     const val mozilla_support_test = "org.mozilla.components:support-test:${Versions.mozilla_android_components}"
174     const val mozilla_support_test_libstate = "org.mozilla.components:support-test-libstate:${Versions.mozilla_android_components}"
175     const val mozilla_support_locale = "org.mozilla.components:support-locale:${Versions.mozilla_android_components}"
177     const val sentry = "io.sentry:sentry-android:${Versions.sentry}"
178     const val leakcanary = "com.squareup.leakcanary:leakcanary-android-core:${Versions.leakcanary}"
180     const val androidx_compose_ui = "androidx.compose.ui:ui:${Versions.androidx_compose}"
181     const val androidx_compose_ui_test = "androidx.compose.ui:ui-test-junit4:${Versions.androidx_compose}"
182     const val androidx_compose_ui_test_manifest = "androidx.compose.ui:ui-test-manifest:${Versions.androidx_compose}"
183     const val androidx_compose_ui_tooling = "androidx.compose.ui:ui-tooling:${Versions.androidx_compose}"
184     const val androidx_compose_foundation = "androidx.compose.foundation:foundation:${Versions.androidx_compose}"
185     const val androidx_compose_material = "androidx.compose.material:material:${Versions.androidx_compose}"
186     const val androidx_annotation = "androidx.annotation:annotation:${Versions.androidx_annotation}"
187     const val androidx_benchmark_junit4 = "androidx.benchmark:benchmark-junit4:${Versions.androidx_benchmark}"
188     const val androidx_biometric = "androidx.biometric:biometric:${Versions.androidx_biometric}"
189     const val androidx_fragment = "androidx.fragment:fragment-ktx:${Versions.androidx_fragment}"
190     const val androidx_appcompat = "androidx.appcompat:appcompat:${Versions.androidx_appcompat}"
191     const val androidx_coordinatorlayout = "androidx.coordinatorlayout:coordinatorlayout:${Versions.androidx_coordinator_layout}"
192     const val androidx_constraintlayout = "androidx.constraintlayout:constraintlayout:${Versions.androidx_constraint_layout}"
193     const val androidx_legacy = "androidx.legacy:legacy-support-v4:${Versions.androidx_legacy}"
194     const val androidx_lifecycle_common = "androidx.lifecycle:lifecycle-common:${Versions.androidx_lifecycle}"
195     const val androidx_lifecycle_livedata = "androidx.lifecycle:lifecycle-livedata-ktx:${Versions.androidx_lifecycle}"
196     const val androidx_lifecycle_process = "androidx.lifecycle:lifecycle-process:${Versions.androidx_lifecycle}"
197     const val androidx_lifecycle_viewmodel = "androidx.lifecycle:lifecycle-viewmodel-ktx:${Versions.androidx_lifecycle}"
198     const val androidx_lifecycle_runtime = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.androidx_lifecycle}"
199     const val androidx_paging = "androidx.paging:paging-runtime-ktx:${Versions.androidx_paging}"
200     const val androidx_preference = "androidx.preference:preference-ktx:${Versions.androidx_preference}"
201     const val androidx_safeargs = "androidx.navigation:navigation-safe-args-gradle-plugin:${Versions.androidx_navigation}"
202     const val androidx_navigation_fragment = "androidx.navigation:navigation-fragment-ktx:${Versions.androidx_navigation}"
203     const val androidx_navigation_ui = "androidx.navigation:navigation-ui:${Versions.androidx_navigation}"
204     const val androidx_recyclerview = "androidx.recyclerview:recyclerview:${Versions.androidx_recyclerview}"
205     const val androidx_core = "androidx.core:core:${Versions.androidx_core}"
206     const val androidx_core_ktx = "androidx.core:core-ktx:${Versions.androidx_core}"
207     const val androidx_transition = "androidx.transition:transition:${Versions.androidx_transition}"
208     const val androidx_work_ktx = "androidx.work:work-runtime-ktx:${Versions.androidx_work}"
209     const val androidx_work_testing = "androidx.work:work-testing:${Versions.androidx_work}"
210     const val androidx_datastore = "androidx.datastore:datastore:${Versions.androidx_datastore}"
211     const val google_material = "com.google.android.material:material:${Versions.google_material}"
213     const val protobuf_javalite = "com.google.protobuf:protobuf-javalite:${Versions.protobuf}"
214     const val protobuf_compiler = "com.google.protobuf:protoc:${Versions.protobuf}"
216     const val adjust = "com.adjust.sdk:adjust-android:${Versions.adjust}"
217     const val installreferrer = "com.android.installreferrer:installreferrer:${Versions.installreferrer}"
219     const val jna = "net.java.dev.jna:jna:${Versions.jna}@jar"
221     const val junit = "junit:junit:${Versions.junit}"
222     const val mockk = "io.mockk:mockk:${Versions.mockk}"
224     // --- START AndroidX test dependencies --- //
225     // N.B.: the versions of these dependencies appear to be pinned together. To avoid bugs, they
226     // should always be updated together based on the latest version from the Android test releases page:
227     //   https://developer.android.com/jetpack/androidx/releases/test
228     // For the full IDs of these test dependencies, see:
229     //   https://developer.android.com/training/testing/set-up-project#android-test-dependencies
230     private const val androidx_test_shared_version = "1.3.0-alpha05" // this appears to be shared with many deps.
231     const val androidx_test_core = "androidx.test:core:$androidx_test_shared_version"
232     private const val androidx_espresso_version = "3.3.0-alpha05"
233     const val espresso_core = "androidx.test.espresso:espresso-core:$androidx_espresso_version"
234     const val espresso_contrib = "androidx.test.espresso:espresso-contrib:$androidx_espresso_version"
235     const val espresso_idling_resources = "androidx.test.espresso:espresso-idling-resource:$androidx_espresso_version"
236     const val espresso_intents = "androidx.test.espresso:espresso-intents:$androidx_espresso_version"
237     const val androidx_junit = "androidx.test.ext:junit:1.1.2-alpha05"
238     // Monitor is unused
239     const val orchestrator = "androidx.test:orchestrator:$androidx_test_shared_version"
240     const val tools_test_runner = "androidx.test:runner:$androidx_test_shared_version"
241     const val tools_test_rules = "androidx.test:rules:$androidx_test_shared_version"
242     // Truth is unused
243     // Test services is unused
244     // --- END AndroidX test dependencies --- //
246     const val mockwebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockwebserver}"
247     const val uiautomator = "androidx.test.uiautomator:uiautomator:${Versions.uiautomator}"
248     const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
250     const val google_ads_id = "com.google.android.gms:play-services-ads-identifier:${Versions.google_ads_id_version}"
252     // Required for in-app reviews
253     const val google_play_store = "com.google.android.play:core:${Versions.google_play_store_version}"
255     const val detektApi = "io.gitlab.arturbosch.detekt:detekt-api:${Versions.detekt}"
256     const val detektTest = "io.gitlab.arturbosch.detekt:detekt-test:${Versions.detekt}"
257     const val junitApi = "org.junit.jupiter:junit-jupiter-api:${Versions.junit}"
258     const val junitParams = "org.junit.jupiter:junit-jupiter-params:${Versions.junit}"
259     const val junitEngine = "org.junit.jupiter:junit-jupiter-engine:${Versions.junit}"
263  * Functionality to limit specific dependencies to specific repositories. These are typically expected to be used by
264  * dependency group name (i.e. with `include/excludeGroup`). For additional info, see:
265  * https://docs.gradle.org/current/userguide/declaring_repositories.html#sec::matching_repositories_to_dependencies
267  * Note: I wanted to nest this in Deps but for some reason gradle can't find it so it's top-level now. :|
268  */
269 object RepoMatching {
270     const val mozilla = "org\\.mozilla\\..*"
271     const val androidx = "androidx\\..*"
272     const val comAndroid = "com\\.android.*"
273     const val comGoogleFirebase = "com\\.google\\.firebase"
274     const val comGoogleTesting = "com\\.google\\.testing\\..*"
276     /**
277      * A matcher for com.google.android.* with one exception: the espresso-contrib dependency includes the
278      * accessibility-test-framework dependency, which is not available in the google repo. As such, we must
279      * explicitly exclude it from this regex so it can be found on Maven Central. Note that the transitive
280      * dependency com.google.guava is also not available on google's repo.
281      */
282     const val comGoogleAndroid = "com\\.google\\.android\\.(?!apps\\.common\\.testing\\.accessibility\\.framework).*"