From 1dcf6b95392937a4a8b1ea50d11749f790abf3bf Mon Sep 17 00:00:00 2001 From: ariskotsomitopoulos Date: Fri, 17 Sep 2021 14:58:44 +0300 Subject: [PATCH] Enhance dependencies handling to support Dependabot --- attachment-viewer/build.gradle | 4 +- dependencies.gradle | 144 ++++++++++++++++++++--------- library/ui-styles/build.gradle | 4 +- matrix-sdk-android-rx/build.gradle | 3 +- matrix-sdk-android/build.gradle | 40 ++++---- multipicker/build.gradle | 2 +- vector/build.gradle | 79 ++++++++-------- 7 files changed, 167 insertions(+), 109 deletions(-) diff --git a/attachment-viewer/build.gradle b/attachment-viewer/build.gradle index aa0e48bc52..064f497dc7 100644 --- a/attachment-viewer/build.gradle +++ b/attachment-viewer/build.gradle @@ -53,10 +53,10 @@ dependencies { implementation libs.rx.rxKotlin implementation libs.rx.rxAndroid - implementation "org.jetbrains.kotlin:kotlin-stdlib:${versions.kotlin}" + implementation libs.jetbrains.kotlinStdlib implementation libs.androidx.core implementation libs.androidx.appCompat implementation libs.androidx.recyclerview - implementation 'com.google.android.material:material:1.4.0' + implementation libs.google.material } \ No newline at end of file diff --git a/dependencies.gradle b/dependencies.gradle index 440bc2f654..13dc57d7fd 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -5,45 +5,43 @@ ext.versions = [ 'targetSdk' : 30, 'sourceCompat' : JavaVersion.VERSION_11, 'targetCompat' : JavaVersion.VERSION_11, - - // Ref: https://kotlinlang.org/releases.html - 'kotlin' : '1.5.30', - 'kotlinCoroutines' : '1.5.1', - 'dagger' : '2.38.1', - 'timber' : '5.0.1', - 'lifecycle' : '2.2.0', - 'moshi' : '1.12.0', - 'arch' : '2.1.0', - 'markwon' : '4.6.2', - 'arrow' : '0.8.2', - 'rxKotlin' : '2.4.0', - 'rxAndroid' : '2.1.1', - 'retrofit' : '2.9.0', - 'epoxy' : '4.6.2', - 'glide' : '4.12.0', - 'rxBinding' : '3.1.0', - 'bigImageViwer' : '1.8.1', - 'jjwt' : '0.11.2', - 'kluent' : '1.68', - 'androidxTest' : '1.4.0', - 'espresso' : '3.4.0' - - - ] +// Ref: https://kotlinlang.org/releases.html +def gradle = "7.0.2" +def kotlin = "1.5.30" +def kotlinCoroutines = "1.5.1" +def dagger = "2.38.1" +def retrofit = "2.9.0" +def arrow = "0.8.2" +def markwon = "4.6.2" +def moshi = "1.12.0" +def lifecycle = "2.2.0" +def rxBinding = "3.1.0" +def epoxy = "4.6.2" +def glide = "4.12.0" +def bigImageViewer = "1.8.1" +def jjwt = "0.11.2" + +// Testing +def mockk = "1.12.0" +def espresso = "3.4.0" +def androidxTest = "1.4.0" + + ext.libs = [ - gradle : [ - 'gradlePlugin' : "com.android.tools.build:gradle:7.0.2", - 'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin" + gradle : [ + 'gradlePlugin' : "com.android.tools.build:gradle:$gradle", + 'kotlinPlugin' : "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin" ], - jetbrains : [ - 'kotlinStdlib' : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${versions.kotlin}", - 'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:${versions.kotlinCoroutines}", - 'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:${versions.kotlinCoroutines}", - 'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:${versions.kotlinCoroutines}" + jetbrains : [ + 'kotlinStdlibJdk7' : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin", + 'kotlinStdlib' : "org.jetbrains.kotlin:kotlin-stdlib:$kotlin", + 'coroutinesCore' : "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutines", + 'coroutinesAndroid' : "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinCoroutines", + 'coroutinesRx2' : "org.jetbrains.kotlinx:kotlinx-coroutines-rx2:$kotlinCoroutines" ], - androidx : [ + androidx : [ 'appCompat' : "androidx.appcompat:appcompat:1.3.1", 'core' : "androidx.core:core-ktx:1.6.0", 'recyclerview' : "androidx.recyclerview:recyclerview:1.2.1", @@ -52,20 +50,78 @@ ext.libs = [ 'constraintLayout' : "androidx.constraintlayout:constraintlayout:2.1.0", 'work' : "androidx.work:work-runtime-ktx:2.5.0", 'autoFill' : "androidx.autofill:autofill:1.1.0", - 'junit' : "androidx.test.ext:junit:1.1.3" + 'preferenceKtx' : "androidx.preference:preference-ktx:1.1.1", + 'junit' : "androidx.test.ext:junit:1.1.3", + 'lifecycleExtensions' : "androidx.lifecycle:lifecycle-extensions:$lifecycle", + 'lifecycleJava8' : "androidx.lifecycle:lifecycle-common-java8:$lifecycle", + 'lifecycleLivedata' : "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1", + 'pagingRuntimeKtx' : "androidx.paging:paging-runtime-ktx:2.1.2", + 'coreTesting' : "androidx.arch.core:core-testing:2.1.0", + 'testCore' : "androidx.test:core:$androidxTest", + 'testRunner' : "androidx.test:runner:$androidxTest", + 'testRules' : "androidx.test:rules:$androidxTest", + 'espressoCore' : "androidx.test.espresso:espresso-core:$espresso", + 'espressoContrib' : "androidx.test.espresso:espresso-contrib:$espresso", + 'espressoIntents' : "androidx.test.espresso:espresso-intents:$espresso" ], - dagger : [ - 'dagger' : "com.google.dagger:dagger:${versions.dagger}", - 'daggerCompiler' : "com.google.dagger:dagger-compiler:${versions.dagger}" + google : [ + 'material' : "com.google.android.material:material:1.4.0" ], - rx : [ - 'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:${versions.rxKotlin}", - 'rxAndroid' : "io.reactivex.rxjava2:rxandroid:${versions.rxAndroid}" + dagger : [ + 'dagger' : "com.google.dagger:dagger:$dagger", + 'daggerCompiler' : "com.google.dagger:dagger-compiler:$dagger" ], - jakewharton : [ - 'timber' : "com.jakewharton.timber:timber:${versions.timber}" + squareup : [ + 'moshi' : "com.squareup.moshi:moshi-adapters:$moshi", + 'moshiKotlin' : "com.squareup.moshi:moshi-kotlin-codegen:$moshi", + 'retrofit' : "com.squareup.retrofit2:retrofit:$retrofit", + 'retrofitMoshi' : "com.squareup.retrofit2:converter-moshi:$retrofit" ], - tests : [ + rx : [ + 'rxKotlin' : "io.reactivex.rxjava2:rxkotlin:2.4.0", + 'rxAndroid' : "io.reactivex.rxjava2:rxandroid:2.1.1" + ], + arrow : [ + 'core' : "io.arrow-kt:arrow-core:$arrow", + 'instances' : "io.arrow-kt:arrow-instances-core:$arrow" + ], + markwon : [ + 'core' : "io.noties.markwon:core:$markwon", + 'html' : "io.noties.markwon:html:$markwon" + ], + airbnb : [ + 'epoxy' : "com.airbnb.android:epoxy:$epoxy", + 'epoxyGlide' : "com.airbnb.android:epoxy-glide-preloading:$epoxy", + 'epoxyProcessor' : "com.airbnb.android:epoxy-processor:$epoxy", + 'epoxyPaging' : "com.airbnb.android:epoxy-paging:$epoxy", + 'mvrx' : "com.airbnb.android:mvrx:1.5.1" + ], + mockk : [ + 'mockk' : "io.mockk:mockk:$mockk", + 'mockkAndroid' : "io.mockk:mockk-android:$mockk" + ], + github : [ + 'glide' : "com.github.bumptech.glide:glide:$glide", + 'glideCompiler' : "com.github.bumptech.glide:compiler:$glide", + 'bigImageViewer' : "com.github.piasy:BigImageViewer:$bigImageViewer", + 'glideImageLoader' : "com.github.piasy:GlideImageLoader:$bigImageViewer", + 'progressPieIndicator' : "com.github.piasy:ProgressPieIndicator:$bigImageViewer", + 'glideImageViewFactory' : "com.github.piasy:GlideImageViewFactory:$bigImageViewer" + ], + jakewharton : [ + 'timber' : "com.jakewharton.timber:timber:5.0.1", + 'rxbinding' : "com.jakewharton.rxbinding3:rxbinding:$rxBinding", + 'rxbindingAppcompat' : "com.jakewharton.rxbinding3:rxbinding-appcompat:$rxBinding", + 'rxbindingMaterial' : "com.jakewharton.rxbinding3:rxbinding-material:$rxBinding" + ], + jsonwebtoken: [ + 'jjwtApi' : "io.jsonwebtoken:jjwt-api:$jjwt", + 'jjwtImpl' : "io.jsonwebtoken:jjwt-impl:$jjwt", + 'jjwtOrgjson' : "io.jsonwebtoken:jjwt-orgjson:$jjwt" + ], + tests : [ + 'kluent' : "org.amshove.kluent:kluent-android:1.68", + 'timberJunitRule' : "net.lachlanmckee:timber-junit-rule:1.0.1", 'junit' : "junit:junit:4.13.2" ] ] \ No newline at end of file diff --git a/library/ui-styles/build.gradle b/library/ui-styles/build.gradle index 5985a5d95a..cee58414c7 100644 --- a/library/ui-styles/build.gradle +++ b/library/ui-styles/build.gradle @@ -53,9 +53,9 @@ android { dependencies { implementation libs.androidx.appCompat - implementation 'com.google.android.material:material:1.4.0' + implementation libs.google.material // Pref theme - implementation 'androidx.preference:preference-ktx:1.1.1' + implementation libs.androidx.preferenceKtx // PFLockScreen attrs implementation 'com.github.vector-im:PFLockScreen-Android:1.0.0-beta12' // dialpad dimen diff --git a/matrix-sdk-android-rx/build.gradle b/matrix-sdk-android-rx/build.gradle index 602a9e0506..dbd761cee3 100644 --- a/matrix-sdk-android-rx/build.gradle +++ b/matrix-sdk-android-rx/build.gradle @@ -32,6 +32,7 @@ android { } dependencies { + implementation project(":matrix-sdk-android") implementation libs.androidx.appCompat implementation libs.rx.rxKotlin @@ -39,7 +40,7 @@ dependencies { implementation libs.jetbrains.coroutinesRx2 // Paging - implementation "androidx.paging:paging-runtime-ktx:2.1.2" + implementation libs.androidx.pagingRuntimeKtx // Logging implementation libs.jakewharton.timber diff --git a/matrix-sdk-android/build.gradle b/matrix-sdk-android/build.gradle index 0884c9d878..824d51d589 100644 --- a/matrix-sdk-android/build.gradle +++ b/matrix-sdk-android/build.gradle @@ -101,29 +101,29 @@ static def gitRevisionDate() { dependencies { - implementation libs.jetbrains.kotlinStdlib + implementation libs.jetbrains.kotlinStdlibJdk7 implementation libs.jetbrains.coroutinesCore implementation libs.jetbrains.coroutinesAndroid implementation libs.androidx.appCompat implementation libs.androidx.core - implementation "androidx.lifecycle:lifecycle-extensions:${versions.lifecycle}" - implementation "androidx.lifecycle:lifecycle-common-java8:${versions.lifecycle}" + implementation libs.androidx.lifecycleExtensions + implementation libs.androidx.lifecycleJava8 // Network - implementation "com.squareup.retrofit2:retrofit:${versions.retrofit}" - implementation "com.squareup.retrofit2:converter-moshi:${versions.retrofit}" + implementation libs.squareup.retrofit + implementation libs.squareup.retrofitMoshi implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.1")) implementation 'com.squareup.okhttp3:okhttp' implementation 'com.squareup.okhttp3:logging-interceptor' implementation 'com.squareup.okhttp3:okhttp-urlconnection' - implementation "com.squareup.moshi:moshi-adapters:${versions.moshi}" - kapt "com.squareup.moshi:moshi-kotlin-codegen:${versions.moshi}" + implementation libs.squareup.moshi + kapt libs.squareup.moshiKotlin - implementation "io.noties.markwon:core:${versions.markwon}" + implementation libs.markwon.core // Image implementation libs.androidx.exifinterface @@ -136,8 +136,8 @@ dependencies { implementation libs.androidx.work // FP - implementation "io.arrow-kt:arrow-core:${versions.arrow}" - implementation "io.arrow-kt:arrow-instances-core:${versions.arrow}" + implementation libs.arrow.core + implementation libs.arrow.instances // olm lib is now hosted by jitpack: https://jitpack.io/#org.matrix.gitlab.matrix-org/olm implementation 'org.matrix.gitlab.matrix-org:olm:3.2.4' @@ -160,24 +160,24 @@ dependencies { testImplementation 'org.robolectric:robolectric:4.6.1' //testImplementation 'org.robolectric:shadows-support-v4:3.0' // Note: version sticks to 1.9.2 due to https://github.com/mockk/mockk/issues/281 - testImplementation 'io.mockk:mockk:1.12.0' - testImplementation 'org.amshove.kluent:kluent-android:1.68' + testImplementation libs.mockk.mockk + testImplementation libs.tests.kluent implementation libs.jetbrains.coroutinesAndroid // Plant Timber tree for test testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' kaptAndroidTest libs.dagger.daggerCompiler - androidTestImplementation "androidx.test:core:${versions.androidxTest}" - androidTestImplementation "androidx.test:runner:${versions.androidxTest}" - androidTestImplementation "androidx.test:rules:${versions.androidxTest}" + androidTestImplementation libs.androidx.testCore + androidTestImplementation libs.androidx.testRunner + androidTestImplementation libs.androidx.testRules androidTestImplementation libs.androidx.junit - androidTestImplementation "androidx.test.espresso:espresso-core:${versions.espresso}" - androidTestImplementation 'org.amshove.kluent:kluent-android:1.68' - androidTestImplementation 'io.mockk:mockk-android:1.12.0' - androidTestImplementation "androidx.arch.core:core-testing:${versions.arch}" + androidTestImplementation libs.androidx.espressoCore + androidTestImplementation libs.tests.kluent + androidTestImplementation libs.mockk.mockkAndroid + androidTestImplementation libs.androidx.coreTesting androidTestImplementation libs.jetbrains.coroutinesAndroid // Plant Timber tree for test - androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' + androidTestImplementation libs.tests.timberJunitRule androidTestUtil 'androidx.test:orchestrator:1.4.0' } diff --git a/multipicker/build.gradle b/multipicker/build.gradle index 8d37ec7ecf..437499df7b 100644 --- a/multipicker/build.gradle +++ b/multipicker/build.gradle @@ -38,7 +38,7 @@ android { } dependencies { - implementation libs.jetbrains.kotlinStdlib + implementation libs.jetbrains.kotlinStdlibJdk7 implementation libs.androidx.appCompat implementation libs.androidx.fragmentKtx implementation libs.androidx.exifinterface diff --git a/vector/build.gradle b/vector/build.gradle index 37995d9e8a..afc6ac6a25 100644 --- a/vector/build.gradle +++ b/vector/build.gradle @@ -324,7 +324,7 @@ dependencies { implementation project(":library:ui-styles") implementation 'androidx.multidex:multidex:2.0.1' - implementation libs.jetbrains.kotlinStdlib + implementation libs.jetbrains.kotlinStdlibJdk7 implementation libs.jetbrains.coroutinesCore implementation libs.jetbrains.coroutinesAndroid @@ -340,10 +340,11 @@ dependencies { implementation "org.threeten:threetenbp:1.4.0:no-tzdb" implementation "com.gabrielittner.threetenbp:lazythreetenbp:0.9.0" - implementation "com.squareup.moshi:moshi-adapters:${versions.moshi}" - implementation "androidx.lifecycle:lifecycle-extensions:${versions.lifecycle}" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.3.1" - kapt "com.squareup.moshi:moshi-kotlin-codegen:${versions.moshi}" + implementation libs.squareup.moshi + kapt libs.squareup.moshiKotlin + implementation libs.androidx.lifecycleExtensions + implementation libs.androidx.lifecycleLivedata + // Log implementation libs.jakewharton.timber @@ -359,34 +360,34 @@ dependencies { implementation libs.rx.rxAndroid implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.1' // RXBinding - implementation "com.jakewharton.rxbinding3:rxbinding:${versions.rxBinding}" - implementation "com.jakewharton.rxbinding3:rxbinding-appcompat:${versions.rxBinding}" - implementation "com.jakewharton.rxbinding3:rxbinding-material:${versions.rxBinding}" + implementation libs.jakewharton.rxbinding + implementation libs.jakewharton.rxbindingAppcompat + implementation libs.jakewharton.rxbindingMaterial - implementation("com.airbnb.android:epoxy:${versions.epoxy}") - implementation "com.airbnb.android:epoxy-glide-preloading:${versions.epoxy}" - kapt "com.airbnb.android:epoxy-processor:${versions.epoxy}" - implementation "com.airbnb.android:epoxy-paging:${versions.epoxy}" - implementation 'com.airbnb.android:mvrx:1.5.1' + implementation libs.airbnb.epoxy + implementation libs.airbnb.epoxyGlide + kapt libs.airbnb.epoxyProcessor + implementation libs.airbnb.epoxyPaging + implementation libs.airbnb.mvrx // Work implementation libs.androidx.work // Paging - implementation "androidx.paging:paging-runtime-ktx:2.1.2" + implementation libs.androidx.pagingRuntimeKtx // Functional Programming - implementation "io.arrow-kt:arrow-core:${versions.arrow}" + implementation libs.arrow.core // Pref - implementation 'androidx.preference:preference-ktx:1.1.1' + implementation libs.androidx.preferenceKtx // UI implementation 'com.amulyakhare:com.amulyakhare.textdrawable:1.0.1' - implementation 'com.google.android.material:material:1.4.0' + implementation libs.google.material implementation 'me.gujun.android:span:1.7' - implementation "io.noties.markwon:core:${versions.markwon}" - implementation "io.noties.markwon:html:${versions.markwon}" + implementation libs.markwon.core + implementation libs.markwon.html implementation 'com.googlecode.htmlcompressor:htmlcompressor:1.5.2' implementation 'me.saket:better-link-movement-method:2.2.0' implementation 'com.google.android:flexbox:2.0.1' @@ -414,16 +415,16 @@ dependencies { implementation 'com.squareup:seismic:1.0.2' // Image Loading - implementation "com.github.piasy:BigImageViewer:${versions.bigImageViwer}" - implementation "com.github.piasy:GlideImageLoader:${versions.bigImageViwer}" - implementation "com.github.piasy:ProgressPieIndicator:${versions.bigImageViwer}" - implementation "com.github.piasy:GlideImageViewFactory:${versions.bigImageViwer}" + implementation libs.github.bigImageViewer + implementation libs.github.glideImageLoader + implementation libs.github.progressPieIndicator + implementation libs.github.glideImageViewFactory // implementation 'com.github.MikeOrtiz:TouchImageView:3.0.2' implementation 'com.github.chrisbanes:PhotoView:2.3.0' - implementation "com.github.bumptech.glide:glide:${versions.glide}" - kapt "com.github.bumptech.glide:compiler:${versions.glide}" + implementation libs.github.glide + kapt libs.github.glideCompiler implementation 'com.danikula:videocache:2.7.1' implementation 'com.github.yalantis:ucrop:2.2.7' @@ -475,9 +476,9 @@ dependencies { implementation 'im.dlg:android-dialer:1.2.5' // JWT - api "io.jsonwebtoken:jjwt-api:${versions.jjwt}" - runtimeOnly "io.jsonwebtoken:jjwt-impl:${versions.jjwt}" - runtimeOnly("io.jsonwebtoken:jjwt-orgjson:${versions.jjwt}") { + api libs.jsonwebtoken.jjwtApi + runtimeOnly libs.jsonwebtoken.jjwtImpl + runtimeOnly(libs.jsonwebtoken.jjwtOrgjson) { exclude group: 'org.json', module: 'json' //provided by Android natively } implementation 'commons-codec:commons-codec:1.15' @@ -485,24 +486,24 @@ dependencies { // TESTS testImplementation libs.tests.junit - testImplementation "org.amshove.kluent:kluent-android:${versions.kluent}" + testImplementation libs.tests.kluent // Plant Timber tree for test - testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' + testImplementation libs.tests.timberJunitRule // Activate when you want to check for leaks, from time to time. //debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.3' - androidTestImplementation "androidx.test:core:${versions.androidxTest}" - androidTestImplementation "androidx.test:runner:${versions.androidxTest}" - androidTestImplementation "androidx.test:rules:${versions.androidxTest}" + androidTestImplementation libs.androidx.testCore + androidTestImplementation libs.androidx.testRunner + androidTestImplementation libs.androidx.testRules androidTestImplementation libs.androidx.junit - androidTestImplementation "androidx.test.espresso:espresso-core:${versions.espresso}" - androidTestImplementation "androidx.test.espresso:espresso-contrib:${versions.espresso}" - androidTestImplementation "androidx.test.espresso:espresso-intents:${versions.espresso}" - androidTestImplementation "org.amshove.kluent:kluent-android:${versions.kluent}" - androidTestImplementation "androidx.arch.core:core-testing:${versions.arch}" + androidTestImplementation libs.androidx.espressoCore + androidTestImplementation libs.androidx.espressoContrib + androidTestImplementation libs.androidx.espressoIntents + androidTestImplementation libs.tests.kluent + androidTestImplementation libs.androidx.coreTesting // Plant Timber tree for test - androidTestImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' + androidTestImplementation libs.tests.timberJunitRule // "The one who serves a great Espresso" androidTestImplementation('com.adevinta.android:barista:4.1.0') { exclude group: 'org.jetbrains.kotlin'