diff --git a/WordPress/build.gradle b/WordPress/build.gradle index 8ebe0ab44ae4..2b927b4e88ab 100644 --- a/WordPress/build.gradle +++ b/WordPress/build.gradle @@ -3,16 +3,16 @@ import se.bjurr.violations.comments.github.plugin.gradle.ViolationCommentsToGitH import se.bjurr.violations.lib.model.SEVERITY plugins { - id "com.android.application" - id "org.jetbrains.kotlin.android" - id "org.jetbrains.kotlin.plugin.parcelize" - id "org.jetbrains.kotlin.plugin.allopen" - id "io.sentry.android.gradle" - id "se.bjurr.violations.violation-comments-to-github-gradle-plugin" - id "com.google.gms.google-services" - id "com.google.dagger.hilt.android" - id "org.jetbrains.kotlinx.kover" - id "com.google.devtools.ksp" + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.kotlin.allopen) + alias(libs.plugins.sentry) + alias(libs.plugins.violation.comments) + alias(libs.plugins.google.services) + alias(libs.plugins.dagger) + alias(libs.plugins.kotlix.kover) + alias(libs.plugins.ksp) } sentry { @@ -321,7 +321,7 @@ android { compose true composeOptions { - kotlinCompilerExtensionVersion = androidxComposeCompilerVersion + kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get() } } } @@ -350,8 +350,8 @@ static def addBuildConfigFieldsFromPrefixedProperties(variant, properties, prefi } dependencies { - implementation 'androidx.webkit:webkit:1.11.0' - implementation "androidx.navigation:navigation-compose:$androidxComposeNavigationVersion" + implementation libs.androidx.webkit + implementation libs.androidx.navigation.compose compileOnly project(path: ':libs:annotations') ksp project(':libs:processors') implementation (project(path:':libs:networking')) { @@ -365,224 +365,234 @@ dependencies { implementation (project(path:':libs:editor')) { exclude group: 'org.wordpress', module: 'utils' } - implementation("$gradle.ext.fluxCBinaryPath:$wordPressFluxCVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation("$gradle.ext.fluxCBinaryPath:${libs.versions.wordPressFluxC.get()}") { version { - strictly wordPressFluxCVersion + strictly libs.versions.wordPressFluxC.get() } exclude group: "com.android.volley" exclude group: 'org.wordpress', module: 'utils' exclude group: 'com.android.support', module: 'support-annotations' } - implementation ("$gradle.ext.wputilsBinaryPath:$wordPressUtilsVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation ("$gradle.ext.wputilsBinaryPath:${libs.versions.wordPressUtils.get()}") { version { - strictly wordPressUtilsVersion + strictly libs.versions.wordPressUtils.get() } } - implementation ("$gradle.ext.loginFlowBinaryPath:$wordPressLoginVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation ("$gradle.ext.loginFlowBinaryPath:${libs.versions.wordPressLogin.get()}") { exclude group: 'com.github.bumptech.glide' exclude group: 'org.wordpress', module: 'utils' } - implementation "$gradle.ext.aboutAutomatticBinaryPath:$automatticAboutVersion" - - implementation("$gradle.ext.tracksBinaryPath:$automatticTracksVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation "$gradle.ext.aboutAutomatticBinaryPath:${libs.versions.automatticAbout.get()}" + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation("$gradle.ext.tracksBinaryPath:${libs.versions.automatticTracks.get()}") { version { - strictly automatticTracksVersion + strictly libs.versions.automatticTracks.get() } } - implementation ("com.automattic:rest:$automatticRestVersion") { + implementation (libs.automattic.rest) { exclude group: 'com.mcxiaoke.volley' } - implementation "org.wordpress:persistentedittext:$wordPressPersistentEditTextVersion" - implementation "$gradle.ext.gravatarBinaryPath:$gravatarVersion" - - implementation "com.google.android.play:app-update:$googlePlayInAppUpdateVersion" - implementation "com.google.android.play:app-update-ktx:$googlePlayInAppUpdateVersion" - - implementation "androidx.arch.core:core-common:$androidxArchCoreVersion" - implementation "androidx.arch.core:core-runtime:$androidxArchCoreVersion" - implementation "com.google.code.gson:gson:$googleGsonVersion" - implementation "androidx.core:core:$androidxCoreVersion" - implementation "androidx.core:core-ktx:$androidxCoreVersion" - implementation "androidx.lifecycle:lifecycle-common:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-runtime:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-runtime-ktx:$androidxLifecycleVersion" - implementation "androidx.activity:activity:$androidxActivityVersion" - implementation "androidx.activity:activity-ktx:$androidxActivityVersion" - implementation "androidx.activity:activity-compose:$androidxActivityVersion" - implementation "androidx.fragment:fragment:$androidxFragmentVersion" - implementation "androidx.fragment:fragment-ktx:$androidxFragmentVersion" - implementation "androidx.appcompat:appcompat:$androidxAppcompatVersion" - implementation "androidx.appcompat:appcompat-resources:$androidxAppcompatVersion" - implementation "androidx.cardview:cardview:$androidxCardviewVersion" - implementation "androidx.recyclerview:recyclerview:$androidxRecyclerviewVersion" - implementation "com.google.android.material:material:$googleMaterialVersion" - implementation "com.google.android.flexbox:flexbox:$googleFlexboxlayoutVersion" - implementation "androidx.percentlayout:percentlayout:$androidxPercentlayoutVersion" - implementation "androidx.swiperefreshlayout:swiperefreshlayout:$androidxSwipeToRefreshVersion" - implementation "androidx.preference:preference:$androidxPreferenceVersion" - implementation "androidx.work:work-runtime:$androidxWorkManagerVersion" - implementation "androidx.work:work-runtime-ktx:$androidxWorkManagerVersion" - implementation "androidx.webkit:webkit:$androidxWebkitVersion" - implementation "androidx.constraintlayout:constraintlayout:$androidxConstraintlayoutVersion" - implementation "androidx.lifecycle:lifecycle-viewmodel:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-livedata-core:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-livedata:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-livedata-ktx:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-process:$androidxLifecycleVersion" - implementation "com.android.volley:volley:$androidVolleyVersion" - implementation "com.google.android.play:review:$googlePlayReviewVersion" - implementation "com.google.android.play:review-ktx:$googlePlayReviewVersion" - implementation "com.google.android.gms:play-services-auth:$googlePlayServicesAuthVersion" - implementation "com.google.mlkit:barcode-scanning-common:$googleMLKitBarcodeScanningCommonVersion" - implementation "com.google.mlkit:text-recognition:$googleMLKitTextRecognitionVersion" - implementation "com.google.mlkit:barcode-scanning:$googleMLKitBarcodeScanningVersion" + implementation libs.wordPress.persistentEditText + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation "$gradle.ext.gravatarBinaryPath:${libs.versions.gravatar.get()}" + + implementation libs.android.appUpdate + implementation libs.android.appUpdate.ktx + + implementation libs.androidx.arch.core.common + implementation libs.androidx.arch.core.runtime + implementation libs.google.gson + implementation libs.androidx.core + implementation libs.androidx.core.ktx + implementation libs.androidx.lifecycle.common + implementation libs.androidx.lifecycle.runtime + implementation libs.androidx.lifecycle.runtime.ktx + implementation libs.androidx.activity + implementation libs.androidx.activity.ktx + implementation libs.androidx.activity.compose + implementation libs.androidx.fragment + implementation libs.androidx.fragment.ktx + implementation libs.androidx.appcompat + implementation libs.androidx.appcompat.resources + implementation libs.androidx.cardView + implementation libs.androidx.recyclerView + implementation libs.google.material + implementation libs.google.flexbox + implementation libs.androidx.percentLayout + implementation libs.androidx.swiperefreshlayout + implementation libs.androidx.preference + implementation libs.androidx.work.runtime + implementation libs.androidx.work.runtime.ktx + implementation libs.androidx.constraintLayout + implementation libs.androidx.lifecycle.viewmodel + implementation libs.androidx.lifecycle.viewmodel.ktx + implementation libs.androidx.lifecycle.livedata.core + implementation libs.androidx.lifecycle.livedata + implementation libs.androidx.lifecycle.livedata.ktx + implementation libs.androidx.lifecycle.process + implementation libs.volley + implementation libs.google.play.review + implementation libs.google.play.review.ktx + implementation libs.google.play.services.auth + implementation libs.google.mlkit.barcode.scanning.common + implementation libs.google.mlkit.text.recognition + implementation libs.google.mlkit.barcode.scanning // CameraX - implementation "androidx.camera:camera-camera2:$androidxCameraVersion" - implementation "androidx.camera:camera-lifecycle:$androidxCameraVersion" - implementation "androidx.camera:camera-view:$androidxCameraVersion" - - implementation "com.android.installreferrer:installreferrer:$androidInstallReferrerVersion" - implementation "com.github.chrisbanes:PhotoView:$chrisbanesPhotoviewVersion" - implementation "org.greenrobot:eventbus:$eventBusVersion" - implementation "org.greenrobot:eventbus-java:$eventBusVersion" - implementation "com.squareup.retrofit2:retrofit:$squareupRetrofitVersion" - implementation "org.apache.commons:commons-text:$apacheCommonsTextVersion" - implementation "com.airbnb.android:lottie:$lottieVersion" - implementation "com.facebook.shimmer:shimmer:$facebookShimmerVersion" - implementation ("com.github.yalantis:ucrop:$uCropVersion") { + implementation libs.androidx.camera + implementation libs.androidx.camera.lifecycle + implementation libs.androidx.camera.view + + implementation libs.android.installReferrer + implementation libs.chrisbanes.photoview + implementation libs.greenrobot.eventBus + implementation libs.greenrobot.eventBus.java + implementation libs.squareup.retrofit2 + implementation libs.apache.commons.text + implementation libs.lottie + implementation libs.facebook.shimmer + implementation (libs.ucrop) { exclude group: 'androidx.core', module: 'core' exclude group: 'androidx.constraintlayout', module: 'constraintlayout' exclude group: 'androidx.appcompat', module: 'appcompat' } - implementation "com.github.bumptech.glide:glide:$glideVersion" - ksp "com.github.bumptech.glide:ksp:$glideVersion" - implementation "com.github.bumptech.glide:volley-integration:$glideVersion" - implementation "com.github.indexos.media-for-mobile:domain:$indexosMediaForMobileVersion" - implementation "com.github.indexos.media-for-mobile:android:$indexosMediaForMobileVersion" - implementation "com.zendesk:support:$zendeskVersion" + implementation libs.glide + ksp libs.glide.ksp + implementation libs.glide.volley.integration + implementation libs.indexos.media.for.mobile.domain + implementation libs.indexos.media.for.mobile.android + implementation libs.zendesk implementation (name:'tenor-android-core-jetified', ext:'aar') // Jetified Tenor Gif library - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion" - implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$kotlinxCoroutinesVersion" - implementation "com.github.PhilJay:MPAndroidChart:$philjayMpAndroidChartVersion" - implementation "org.jsoup:jsoup:$jsoupVersion" - implementation ("com.google.android.exoplayer:exoplayer:$googleExoPlayerVersion") { + implementation libs.kotlinx.coroutines.core + implementation libs.kotlinx.coroutines.android + implementation libs.philJay.mpAndroidChart + implementation libs.jsoup + implementation (libs.google.exoPlayer) { exclude group: 'com.android.support', module: 'support-annotations' } - implementation "com.google.dagger:dagger-android-support:$gradle.ext.daggerVersion" - ksp "com.google.dagger:dagger-android-processor:$gradle.ext.daggerVersion" - implementation "com.google.dagger:hilt-android:$gradle.ext.daggerVersion" - ksp "com.google.dagger:hilt-compiler:$gradle.ext.daggerVersion" + implementation libs.dagger.android.support + ksp libs.dagger.android.processor + implementation libs.dagger.hilt.android + ksp libs.dagger.hilt.compiler - testImplementation("androidx.arch.core:core-testing:$androidxArchCoreVersion", { + testImplementation(libs.androidx.arch.core.testing, { exclude group: 'com.android.support', module: 'support-compat' exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-core-utils' }) - testImplementation "junit:junit:$junitVersion" - testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion" - testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$gradle.ext.kotlinVersion" - testImplementation "org.assertj:assertj-core:$assertjVersion" - testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlinxCoroutinesVersion" + testImplementation libs.junit + testImplementation libs.mockito.kotlin + testImplementation libs.kotlin.test.junit + testImplementation libs.assertj.core + testImplementation libs.kotlinx.coroutines.test androidTestImplementation project(path:':libs:mocks') - androidTestImplementation "org.mockito:mockito-android:$mockitoAndroidVersion" - androidTestImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion" - androidTestImplementation "com.squareup.okhttp3:mockwebserver:$squareupMockWebServerVersion" - androidTestImplementation "androidx.test.uiautomator:uiautomator:$androidxTestUiAutomatorVersion" - androidTestImplementation "androidx.test.espresso:espresso-core:$androidxTestEspressoVersion", { + androidTestImplementation libs.mockito.android + androidTestImplementation libs.mockito.kotlin + androidTestImplementation libs.squareup.okhttp.mockWebServer + androidTestImplementation libs.androidx.test.ui.automator + androidTestImplementation libs.androidx.test.espresso.core, { version { - strictly androidxTestEspressoVersion + strictly libs.versions.androidxTestEspresso.get() } exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation("androidx.test.espresso:espresso-contrib:$androidxTestEspressoVersion") { + androidTestImplementation(libs.androidx.test.espresso.contrib) { version { - strictly androidxTestEspressoVersion + strictly libs.versions.androidxTestEspresso.get() } exclude group: 'com.android.support', module: 'appcompat' exclude group: 'com.android.support', module: 'support-v4' exclude module: 'recyclerview-v7' } - androidTestImplementation("androidx.test.espresso:espresso-accessibility:$androidxTestEspressoVersion") { + androidTestImplementation(libs.androidx.test.espresso.accessibility) { version { - strictly androidxTestEspressoVersion + strictly libs.versions.androidxTestEspresso.get() } } - androidTestImplementation("com.github.tomakehurst:wiremock:$wiremockVersion") { + androidTestImplementation(libs.wiremock) { exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'org.apache.commons', module: 'commons-lang3' exclude group: 'asm', module: 'asm' exclude group: 'org.json', module: 'json' } - androidTestImplementation "org.apache.httpcomponents:httpclient-android:$wiremockHttpClientVersion" - androidTestImplementation "androidx.test:runner:$androidxTestCoreVersion" - androidTestImplementation "androidx.test:rules:$androidxTestCoreVersion" - androidTestImplementation "androidx.test.ext:junit:$androidxTestExtJunitVersion" - androidTestImplementation "tools.fastlane:screengrab:$screengrabVersion", { + androidTestImplementation libs.wiremock.httpclient.android + androidTestImplementation libs.androidx.test.runner + androidTestImplementation libs.androidx.test.rules + androidTestImplementation libs.androidx.test.ext.junit + androidTestImplementation libs.fastlane.screengrab, { exclude group: 'com.android.support.test.uiautomator', module: 'uiautomator-v18' } androidTestImplementation (name:'cloudtestingscreenshotter_lib', ext:'aar') // Screenshots on Firebase Cloud Testing - androidTestImplementation "androidx.work:work-testing:$androidxWorkManagerVersion" - androidTestImplementation "com.google.dagger:hilt-android-testing:$gradle.ext.daggerVersion" - kspAndroidTest "com.google.dagger:hilt-android-compiler:$gradle.ext.daggerVersion" + androidTestImplementation libs.androidx.work.testing + androidTestImplementation libs.dagger.hilt.android.testing + kspAndroidTest libs.dagger.hilt.android.compiler // Enables Java 8+ API desugaring support - coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$androidDesugarVersion" - lintChecks "org.wordpress:lint:$wordPressLintVersion" + coreLibraryDesugaring libs.android.desugar.jdk.libs + lintChecks libs.wordpress.lint // Firebase - def firebaseBom = platform("com.google.firebase:firebase-bom:$firebaseBomVersion") + def firebaseBom = platform(libs.firebase.bom) implementation(firebaseBom) // Firebase - Main - implementation "com.google.firebase:firebase-messaging" + implementation libs.firebase.messaging // Firebase - Deprecated - implementation "com.google.firebase:firebase-iid:$firebaseIidVersion" + implementation libs.firebase.iid // Jetpack Compose - def composeBom = platform("androidx.compose:compose-bom:$androidxComposeBomVersion") + def composeBom = platform(libs.compose.bom) implementation(composeBom) androidTestImplementation(composeBom) // - Jetpack Compose - Android Studio - debugImplementation "androidx.compose.ui:ui-test-manifest" - debugImplementation "androidx.compose.ui:ui-tooling" + debugImplementation libs.androidx.compose.ui.test.manifest + debugImplementation libs.androidx.compose.ui.tooling // - Jetpack Compose - Main - implementation "androidx.compose.runtime:runtime" - implementation "androidx.compose.runtime:runtime-livedata" - implementation "androidx.compose.foundation:foundation" - implementation "androidx.compose.foundation:foundation-layout" - implementation "androidx.compose.ui:ui" - implementation "androidx.compose.ui:ui-graphics" - implementation "androidx.compose.ui:ui-text" - implementation "androidx.compose.ui:ui-unit" - implementation "androidx.compose.ui:ui-tooling-preview" - implementation "androidx.compose.material:material" + implementation libs.androidx.compose.runtime + implementation libs.androidx.compose.runtime.livedata + implementation libs.androidx.compose.foundation + implementation libs.androidx.compose.foundation.layout + implementation libs.androidx.compose.ui + implementation libs.androidx.compose.ui.graphics + implementation libs.androidx.compose.ui.text + implementation libs.androidx.compose.ui.unit + implementation libs.androidx.compose.ui.tooling.preview + implementation libs.androidx.compose.material // - Jetpack Compose - AndroidX - implementation "androidx.lifecycle:lifecycle-viewmodel-compose:$androidxLifecycleVersion" - implementation "androidx.constraintlayout:constraintlayout-compose:$androidxConstraintlayoutComposeVersion" + implementation libs.androidx.lifecycle.viewmodel.compose + implementation libs.androidx.constraintLayout.compose // - Jetpack Compose - Other - implementation "io.coil-kt:coil-compose:$coilComposeVersion" - implementation "com.airbnb.android:lottie-compose:$lottieVersion" + implementation libs.coil.compose + implementation libs.lottie.compose // - Jetpack Compose - UI Tests - androidTestImplementation "androidx.compose.ui:ui-test-junit4" - implementation "androidx.compose.material3:material3:$androidxComposeMaterial3Version" + androidTestImplementation libs.androidx.compose.ui.test + implementation libs.androidx.compose.material3 // Cascade - Compose nested menu - implementation "me.saket.cascade:cascade-compose:2.3.0" + implementation libs.cascade.compose - implementation "com.automattic.tracks:crashlogging:$automatticTracksVersion" + implementation libs.automattic.tracks.crashlogging // - Flipper - debugImplementation ("com.facebook.flipper:flipper:$flipperVersion") { + debugImplementation (libs.facebook.flipper) { exclude group:'org.jetbrains.kotlinx', module:'kotlinx-serialization-json-jvm' } - debugImplementation "com.facebook.soloader:soloader:$soLoaderVersion" - debugImplementation ("com.facebook.flipper:flipper-network-plugin:$flipperVersion"){ + debugImplementation libs.facebook.soLoader + debugImplementation (libs.facebook.flipper.network.plugin) { exclude group:'org.jetbrains.kotlinx', module:'kotlinx-serialization-json-jvm' } - releaseImplementation "com.facebook.flipper:flipper-noop:$flipperVersion" + releaseImplementation libs.facebook.flipper.noop } configurations.all { diff --git a/build.gradle b/build.gradle index dca73989df3b..d092da2b6049 100644 --- a/build.gradle +++ b/build.gradle @@ -1,17 +1,20 @@ import com.automattic.android.measure.reporters.InternalA8cCiReporter -import com.automattic.android.measure.reporters.SlowSlowTasksMetricsReporter import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - id "io.gitlab.arturbosch.detekt" - id 'com.automattic.android.measure-builds' - id "org.jetbrains.kotlinx.kover" - id "com.autonomousapps.dependency-analysis" - id "androidx.navigation.safeargs.kotlin" apply false - id "com.android.library" apply false - id 'com.google.gms.google-services' apply false - id "org.jetbrains.kotlin.plugin.parcelize" apply false - id "com.google.devtools.ksp" apply false + alias(libs.plugins.detekt) + alias(libs.plugins.automattic.measure.builds) + alias(libs.plugins.kotlix.kover) + alias(libs.plugins.dependency.analysis) + alias(libs.plugins.navigation.safeargs).apply(false) + alias(libs.plugins.android.library).apply(false) + alias(libs.plugins.android.application).apply(false) + alias(libs.plugins.google.services).apply(false) + alias(libs.plugins.kotlin.jvm).apply(false) + alias(libs.plugins.kotlin.parcelize).apply(false) + alias(libs.plugins.kotlin.android).apply(false) + alias(libs.plugins.kotlin.serialization).apply(false) + alias(libs.plugins.ksp).apply(false) } ext { @@ -20,104 +23,6 @@ ext { targetSdkVersion = 34 } -ext { - // libs - automatticAboutVersion = '1.4.0' - automatticRestVersion = '1.0.8' - automatticTracksVersion = '5.1.0' - gutenbergMobileVersion = 'v1.121.0-alpha1' - wordPressAztecVersion = 'v2.1.3' - wordPressFluxCVersion = 'trunk-c670e916346bdaa2379936dd8dbb6750766ca319' - wordPressLoginVersion = '1.16.0' - wordPressPersistentEditTextVersion = '1.0.2' - wordPressUtilsVersion = '3.14.0' - indexosMediaForMobileVersion = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' - gravatarVersion = '1.0.0' - - // debug - flipperVersion = '0.247.0' - soLoaderVersion = '0.10.5' - - // main - androidInstallReferrerVersion = '2.2' - androidVolleyVersion = '1.2.1' - androidxAnnotationVersion = '1.6.0' - androidxAppcompatVersion = '1.6.1' - androidxArchCoreVersion = '2.2.0' - androidxCameraVersion = '1.3.4' - androidxComposeBomVersion = '2023.10.00' - androidxComposeCompilerVersion = '1.5.9' - androidxComposeNavigationVersion = '2.7.6' - androidxCardviewVersion = '1.0.0' - androidxConstraintlayoutVersion = '2.1.4' - androidxConstraintlayoutComposeVersion = '1.0.1' - androidxCoreVersion = '1.10.0' - androidxActivityVersion = '1.8.0' - androidxFragmentVersion = '1.6.2' - androidxGridlayoutVersion = '1.0.0' - androidxLifecycleVersion = '2.6.2' - androidxPercentlayoutVersion = '1.0.0' - androidxPreferenceVersion = '1.2.0' - androidxRecyclerviewVersion = '1.3.0' - androidxSwipeToRefreshVersion = '1.1.0' - androidxViewpager2Version = '1.0.0' - androidxWorkManagerVersion = "2.9.0" - androidxWebkitVersion = '1.11.0' - androidxComposeMaterial3Version = '1.1.1' - apacheCommonsTextVersion = '1.10.0' - coilComposeVersion = '2.4.0' - chrisbanesPhotoviewVersion = '2.3.0' - eventBusVersion = '3.3.1' - facebookShimmerVersion = '0.5.0' - firebaseBomVersion = '32.1.0' - firebaseIidVersion = '21.1.0' - glideVersion = '4.16.0' - googleAutoServiceVersion = '1.0.1' - googleExoPlayerVersion = '2.13.3' - googleFlexboxlayoutVersion = '3.0.0' - googleGsonVersion = '2.10.1' - googleMaterialVersion = '1.9.0' - - googleMLKitBarcodeScanningVersion = '17.2.0' - googleMLKitBarcodeScanningCommonVersion = '17.0.0' - googleMLKitTextRecognitionVersion = '16.0.0' - googlePlayReviewVersion = '2.0.1' - googlePlayServicesAuthVersion = '20.4.1' - googlePlayServicesCodeScannerVersion = '16.0.0-beta3' - jsoupVersion = '1.16.2' - kotlinxCoroutinesVersion = '1.7.3' - lottieVersion = '6.1.0' - philjayMpAndroidChartVersion = 'v3.1.0' - squareupKotlinPoetVersion = '1.16.0' - squareupRetrofitVersion = '2.9.0' - uCropVersion = '2.2.9' - zendeskVersion = '5.1.2' - googlePlayInAppUpdateVersion = '2.1.0' - - // react native - facebookReactVersion = '0.73.3' - - // test - assertjVersion = '3.23.1' - junitVersion = '4.13.2' - mockitoAndroidVersion = '4.5.1' - mockitoKotlinVersion = '4.1.0' - - // android test - androidxTestCoreVersion = '1.5.0' - androidxTestEspressoVersion = '3.4.0' - androidxTestExtJunitVersion = '1.1.5' - androidxTestUiAutomatorVersion = '2.2.0' - screengrabVersion = '2.1.1' - squareupMockWebServerVersion = '4.12.0' - wiremockVersion = '2.26.3' - wiremockHttpClientVersion = '4.3.5.1' - - // other - androidDesugarVersion = '2.0.4' - wordPressLintVersion = '2.1.0' -} - measureBuilds { enable = findProperty('measureBuildsEnabled')?.toBoolean() ?: false onBuildMetricsReadyListener { report -> @@ -170,7 +75,7 @@ allprojects { } detekt { - toolVersion = gradle.ext.detektVersion + toolVersion = libs.versions.detekt.get() baseline = file("${project.rootDir}/config/detekt/baseline.xml") config = files("${project.rootDir}/config/detekt/detekt.yml") autoCorrect = false @@ -260,7 +165,7 @@ tasks.register("configureApply") { } dependencies { - detektPlugins "io.gitlab.arturbosch.detekt:detekt-formatting:$gradle.ext.detektVersion" + detektPlugins libs.detekt.formatting } apply from: './config/gradle/code_coverage.gradle' diff --git a/docs/test_instructions_per_dependency_update.md b/docs/test_instructions_per_dependency_update.md index 6071e687cf58..113352ad2c5f 100644 --- a/docs/test_instructions_per_dependency_update.md +++ b/docs/test_instructions_per_dependency_update.md @@ -74,7 +74,7 @@ rather than strict requirements. ----- -### Navigation [[navigationVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### Navigation [[navigationVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Image Editing Flow [libs:image-editor] @@ -91,7 +91,7 @@ rather than strict requirements. ----- -### WorkManager [[androidxWorkManagerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### WorkManager [[androidxWorkManagerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] UploadWorker.kt @@ -144,7 +144,7 @@ rather than strict requirements. ----- -### Preference (AndroidX) [[androidxPreferenceVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Preference (AndroidX) [[androidxPreferenceVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP] Notifications Settings [NotificationsSettingsFragment.java] @@ -157,7 +157,7 @@ rather than strict requirements.
-### Preference (Android) [[N/A](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Preference (Android) [[N/A](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ℹ️ Note that this is not an actual dependency, it being part of the `Android` SDK, that it is deprecated and will be migrated to its `AndroidX` equivalent in the future. [[Issue](https://github.com/wordpress-mobile/WordPress-Android/issues/17962)] @@ -231,7 +231,7 @@ rather than strict requirements. ----- -### ExoPlayer [[googleExoPlayerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ExoPlayer [[googleExoPlayerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Image Preview @@ -262,7 +262,7 @@ rather than strict requirements. ----- -### Webkit [[androidxWebkitVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Webkit [[androidxWebkitVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [TODO] TODO @@ -275,7 +275,7 @@ rather than strict requirements. ----- -### Firebase [[firebaseBomVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Firebase [[firebaseBomVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Push Notification on Post Being Published [GCMMessageService.java] @@ -291,7 +291,7 @@ rather than strict requirements. ----- -### FirebaseIid [[firebaseIidVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### FirebaseIid [[firebaseIidVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [TODO] TODO @@ -304,7 +304,7 @@ rather than strict requirements. ----- -### MLKitBarcodeScanning [[googleMLKitBarcodeScanningVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### MLKitBarcodeScanning [[googleMLKitBarcodeScanningVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
@@ -318,7 +318,7 @@ rather than strict requirements. ----- -### PlayServicesAuth [[googlePlayServicesAuthVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### PlayServicesAuth [[googlePlayServicesAuthVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ℹ️ These set of testing instructions are for internal contributors only, which can have access to upload an `.aab` to Google Play Store. As such, external contributors can't possibly test this @@ -386,7 +386,7 @@ rather than strict requirements. ----- -### PlayServicesCodeScanner [[googlePlayServicesCodeScannerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### PlayServicesCodeScanner [[googlePlayServicesCodeScannerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP] Scan Login Code @@ -420,7 +420,7 @@ Step.3: ----- -### PlayReview [[googlePlayReviewVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### PlayReview [[googlePlayReviewVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. In app reviews @@ -433,7 +433,7 @@ Step.3: ----- -### Zendesk [[zendeskVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Zendesk [[zendeskVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP] Zendesk Update [Tickets & Contact Support] @@ -458,7 +458,7 @@ Step.3: ----- -### JSoup [[jsoupVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### JSoup [[jsoupVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Classic Editor [Aztec] @@ -516,7 +516,7 @@ all sites have this option. ----- -### AutoService [[googleAutoServiceVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### AutoService [[googleAutoServiceVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Remote Features [@Feature] @@ -548,7 +548,7 @@ all sites have this option. ----- -### KotlinPoet [[squareupKotlinPoetVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### KotlinPoet [[squareupKotlinPoetVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Remote Features [@Feature] @@ -580,7 +580,7 @@ all sites have this option. ----- -### Lottie [[lottieVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Lottie [[lottieVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] JP Install Full Plugin Animation [JPInstallFullPluginAnimation.kt] @@ -611,7 +611,7 @@ all sites have this option. ----- -### UCrop [[uCropVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### UCrop [[uCropVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
1. [JP/WP] Image Edit Screen [PreviewImageFragment.kt + CropFragment.kt] @@ -672,111 +672,111 @@ all sites have this option. ----- -### GoogleServices [[googleServicesVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### GoogleServices [[googleServicesVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Dagger [[daggerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### Dagger [[daggerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Kotlin [[kotlinVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] + [[androidxComposeCompilerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Kotlin [[kotlinVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] + [[androidxComposeCompilerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Coroutines [[kotlinxCoroutinesVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Coroutines [[kotlinxCoroutinesVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### EventBus [[eventBusVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### EventBus [[eventBusVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Annotation [[androidxAnnotationVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Annotation [[androidxAnnotationVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ArchCore [[androidxArchCoreVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ArchCore [[androidxArchCoreVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Lifecycle [[androidxLifecycleVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Lifecycle [[androidxLifecycleVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Core [[androidxCoreVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Core [[androidxCoreVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Activity [[androidxActivityVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Activity [[androidxActivityVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Fragment [[androidxFragmentVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Fragment [[androidxFragmentVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### AppCompat [[androidxAppcompatVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### AppCompat [[androidxAppcompatVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Compose [[androidxComposeBomVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Compose [[androidxComposeBomVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ComposeMaterial3 [[androidxComposeMaterial3Version](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ComposeMaterial3 [[androidxComposeMaterial3Version](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ComposeConstraintLayout [[androidxConstraintlayoutComposeVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ComposeConstraintLayout [[androidxConstraintlayoutComposeVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Coil [[coilComposeVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Coil [[coilComposeVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### RecyclerView [[androidxRecyclerviewVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### RecyclerView [[androidxRecyclerviewVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ViewPager2 [[androidxViewpager2Version](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ViewPager2 [[androidxViewpager2Version](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Material [[googleMaterialVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Material [[googleMaterialVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ConstraintLayout [[androidxConstraintlayoutVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ConstraintLayout [[androidxConstraintlayoutVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Retrofit [[squareupRetrofitVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Retrofit [[squareupRetrofitVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Volley [[androidVolleyVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Volley [[androidVolleyVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Glide [[glideVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] + [[glideVolleyVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Glide [[glideVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] + [[glideVolleyVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Gson [[googleGsonVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Gson [[googleGsonVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### InstallReferrer [[androidInstallReferrerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### InstallReferrer [[androidInstallReferrerVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### ApacheCommons [[apacheCommonsTextVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ApacheCommons [[apacheCommonsTextVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)] ----- -### Desugar [[androidDesugarVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### Desugar [[androidDesugarVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Extra @@ -819,7 +819,7 @@ and [here](https://github.com/orgs/wordpress-mobile/projects/95)). ----- -### AGP [[agpVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### AGP [[agpVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Why & How @@ -832,7 +832,7 @@ and [here](https://github.com/orgs/wordpress-mobile/projects/95)). ----- -### Sentry [[sentryVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### Sentry [[sentryVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Why & How @@ -894,7 +894,7 @@ diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/main/WPMain ----- -### Detekt [[detektVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### Detekt [[detektVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Why & How @@ -907,7 +907,7 @@ diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/main/WPMain ----- -### ViolationComments [[violationCommentsVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/settings.gradle)] +### ViolationComments [[violationCommentsVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Why & How @@ -920,7 +920,7 @@ diff --git a/WordPress/src/main/java/org/wordpress/android/viewmodel/main/WPMain ----- -### ReactNative [[facebookReactVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/build.gradle)] +### ReactNative [[facebookReactVersion](https://github.com/wordpress-mobile/WordPress-Android/blob/trunk/gradle/libs.versions.toml)]
Why & How diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000000..9d441a5b75f5 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,249 @@ +[versions] +agp = '8.1.0' +androidDesugar = '2.0.4' +androidInstallReferrer = '2.2' +androidxActivity = '1.8.0' +androidxAnnotation = '1.6.0' +androidxAppcompat = '1.6.1' +androidxArchCore = '2.2.0' +androidxCamera = '1.3.4' +androidxCardview = '1.0.0' +androidxComposeCompiler = '1.5.9' +androidxComposeMaterial3 = '1.1.1' +androidxConstraintlayout = '2.1.4' +androidxConstraintlayoutCompose = '1.0.1' +androidxCore = '1.10.0' +androidxFragment = '1.6.2' +androidxLifecycle = '2.6.2' +androidxNavigation = "2.7.7" +androidxNavigationCompose = '2.7.6' +androidxPercentLayout = '1.0.0' +androidxPreference = '1.2.0' +androidxRecyclerview = '1.3.0' +androidxSwipeRefreshLayout = '1.1.0' +androidxTest = '1.5.0' +androidxTestEspresso = '3.4.0' +androidxTestExtJunit = '1.1.5' +androidxTestUiAutomator = '2.2.0' +androidxViewpager2 = '1.0.0' +androidxWebkit = '1.11.0' +androidxWorkManager = "2.9.0" +apacheCommonsText = '1.10.0' +assertj = '3.23.1' +automatticAbout = '1.4.0' +automatticMeasureBuilds = '3.1.0' +automatticRest = '1.0.8' +automatticTracks = '5.1.0' +cascadeCompose = '2.3.0' +chrisbanesPhotoview = '2.3.0' +coilCompose = '2.4.0' +composeBom = '2023.10.00' +dagger = '2.50' +dependencyAnalysis = "1.28.0" +detekt = "1.23.0" +eventBus = '3.3.1' +exoPlayer = '2.13.3' +facebookReact = '0.73.3' +facebookShimmer = '0.5.0' +firebaseBom = '32.1.0' +firebaseIid = '21.1.0' +flipper = '0.247.0' +glide = '4.16.0' +googleFlexbox = '3.0.0' +googleGson = '2.10.1' +googleMaterial = '1.9.0' +googleMLKitBarcodeScanning = '17.2.0' +googleMLKitBarcodeScanningCommon = '17.0.0' +googleMLKitTextRecognition = '16.0.0' +googlePlayAppUpdate = '2.1.0' +googlePlayReview = '2.0.1' +googlePlayServicesAuth = '20.4.1' +googleServices = '4.3.15' +gravatar = '1.0.0' +gutenbergMobile = 'v1.121.0-alpha1' +indexosMediaForMobile = '43a9026f0973a2f0a74fa813132f6a16f7499c3a' +jsoup = '1.16.2' +junit = '4.13.2' +kotlin = '1.9.22' +kotlinxCoroutines = '1.7.3' +kotlinxKover = "0.7.5" +ksp = "1.9.22-1.0.17" +lottie = '6.1.0' +mockitoAndroid = '4.5.1' +mockitoKotlin = '4.1.0' +philjayMpAndroidChart = 'v3.1.0' +screengrab = '2.1.1' +sentry = "4.3.1" +soLoader = '0.10.5' +squareupKotlinPoet = '1.16.0' +squareupMockWebServer = '4.12.0' +squareupRetrofit = '2.9.0' +uCrop = '2.2.9' +violationComments = '1.70.0' +volley = '1.2.1' +wiremock = '2.26.3' +wiremockHttpClient = '4.3.5.1' +wordPressAztec = 'v2.1.3' +wordPressFluxC = 'trunk-c670e916346bdaa2379936dd8dbb6750766ca319' +wordPressLint = '2.1.0' +wordPressLogin = '1.16.0' +wordPressPersistentEditText = '1.0.2' +wordPressUtils = '3.14.0' +zendesk = '5.1.2' + +[libraries] +android-appUpdate = { group = "com.google.android.play", name = "app-update", version.ref = "googlePlayAppUpdate" } +android-appUpdate-ktx = { group = "com.google.android.play", name = "app-update-ktx", version.ref = "googlePlayAppUpdate" } +android-desugar-jdk-libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref ="androidDesugar" } +android-installReferrer = { group = "com.android.installreferrer", name = "installreferrer", version.ref ="androidInstallReferrer" } +androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidxActivity" } +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" } +androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "androidxActivity" } +androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref ="androidxAnnotation" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppcompat" } +androidx-appcompat-resources = { group = "androidx.appcompat", name = "appcompat-resources", version.ref = "androidxAppcompat" } +androidx-arch-core-common = { group = "androidx.arch.core", name = "core-common", version.ref = "androidxArchCore" } +androidx-arch-core-runtime = { group = "androidx.arch.core", name = "core-runtime", version.ref = "androidxArchCore" } +androidx-arch-core-testing = { group = "androidx.arch.core", name = "core-testing", version.ref = "androidxArchCore" } +androidx-camera = { group = "androidx.camera", name = "camera-camera2", version.ref ="androidxCamera" } +androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref ="androidxCamera" } +androidx-camera-view = { group = "androidx.camera", name = "camera-view", version.ref ="androidxCamera" } +androidx-cardView = { group = "androidx.cardview", name = "cardview", version.ref = "androidxCardview" } +androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" } +androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" } +androidx-compose-material = { group = "androidx.compose.material", name = "material" } +androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref ="androidxComposeMaterial3" } +androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime" } +androidx-compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } +androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } +androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-compose-ui-text = { group = "androidx.compose.ui", name = "ui-text" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-compose-ui-unit = { group = "androidx.compose.ui", name = "ui-unit" } +androidx-constraintLayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidxConstraintlayout" } +androidx-constraintLayout-compose = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version.ref ="androidxConstraintlayoutCompose" } +androidx-core = { group = "androidx.core", name = "core", version.ref = "androidxCore" } +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } +androidx-fragment = { group = "androidx.fragment", name = "fragment", version.ref = "androidxFragment"} +androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidxFragment"} +androidx-lifecycle-common = { group = "androidx.lifecycle", name = "lifecycle-common", version.ref = "androidxLifecycle" } +androidx-lifecycle-livedata = { group = "androidx.lifecycle", name = "lifecycle-livedata", version.ref = "androidxLifecycle" } +androidx-lifecycle-livedata-core = { group = "androidx.lifecycle", name = "lifecycle-livedata-core", version.ref = "androidxLifecycle" } +androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-compose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-savedstate = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-savedstate", version.ref = "androidxLifecycle" } +androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigationCompose" } +androidx-navigation-fragment = { group = "androidx.navigation", name = "navigation-fragment", version.ref = "androidxNavigation" } +androidx-navigation-ui = { group = "androidx.navigation", name = "navigation-ui", version.ref = "androidxNavigation" } +androidx-percentLayout = { group = "androidx.percentlayout", name = "percentlayout", version.ref = "androidxPercentLayout" } +androidx-preference = { group = "androidx.preference", name = "preference", version.ref = "androidxPreference" } +androidx-recyclerView = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidxRecyclerview" } +androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "androidxSwipeRefreshLayout" } +androidx-test-espresso-accessibility = { group = "androidx.test.espresso", name = "espresso-accessibility", version.ref ="androidxTestEspresso" } +androidx-test-espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref ="androidxTestEspresso" } +androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref ="androidxTestEspresso" } +androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref ="androidxTestExtJunit" } +androidx-test-rules = { group = "androidx.test", name = "rules", version.ref ="androidxTest" } +androidx-test-runner = { group = "androidx.test", name = "runner", version.ref ="androidxTest" } +androidx-test-ui-automator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref ="androidxTestUiAutomator" } +androidx-viewPager2 = { group = "androidx.viewpager2", name = "viewpager2", version.ref ="androidxViewpager2" } +androidx-webkit = {group = "androidx.webkit", name = "webkit", version.ref = "androidxWebkit"} +androidx-work-runtime = { group = "androidx.work", name = "work-runtime", version.ref = "androidxWorkManager" } +androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWorkManager" } +androidx-work-testing = { group = "androidx.work", name = "work-testing", version.ref = "androidxWorkManager" } +apache-commons-text = { group = "org.apache.commons", name = "commons-text", version.ref ="apacheCommonsText" } +assertj-core = { group = "org.assertj", name = "assertj-core", version.ref ="assertj" } +automattic-rest = { group = "com.automattic", name = "rest", version.ref = "automatticRest" } +automattic-tracks-android = { group = "com.automattic", name = "Automattic-Tracks-Android", version.ref = "automatticTracks" } +automattic-tracks-crashlogging = { group = "com.automattic.tracks", name = "crashlogging", version.ref = "automatticTracks" } +cascade-compose = { group = "me.saket.cascade", name = "cascade-compose", version.ref ="cascadeCompose" } +chrisbanes-photoview = { group = "com.github.chrisbanes", name = "PhotoView", version.ref ="chrisbanesPhotoview" } +coil-compose = { group = "io.coil-kt", name = "coil-compose", version.ref ="coilCompose" } +compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } +dagger-android-processor = { group = "com.google.dagger", name = "dagger-android-processor", version.ref = "dagger" } +dagger-android-support = { group = "com.google.dagger", name = "dagger-android-support", version.ref = "dagger" } +dagger-hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger" } +dagger-hilt-android-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "dagger" } +dagger-hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "dagger" } +dagger-hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "dagger" } +detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" } +facebook-flipper = { group = "com.facebook.flipper", name = "flipper", version.ref ="flipper" } +facebook-flipper-network-plugin = { group = "com.facebook.flipper", name = "flipper-network-plugin", version.ref ="flipper" } +facebook-flipper-noop = { group = "com.facebook.flipper", name = "flipper-noop", version.ref ="flipper" } +facebook-react-android = { group = "com.facebook.react", name = "react-android", version.ref ="facebookReact" } +facebook-react-hermesAndroid = { group = "com.facebook.react", name = "hermes-android", version.ref ="facebookReact" } +facebook-shimmer = { group = "com.facebook.shimmer", name = "shimmer", version.ref ="facebookShimmer" } +facebook-soLoader = { group = "com.facebook.soloader", name = "soloader", version.ref ="soLoader" } +fastlane-screengrab = { group = "tools.fastlane", name = "screengrab", version.ref ="screengrab" } +firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom"} +firebase-iid = { group = "com.google.firebase", name = "firebase-iid", version.ref ="firebaseIid" } +firebase-messaging = { module = "com.google.firebase:firebase-messaging" } +glide = { group = "com.github.bumptech.glide", name = "glide", version.ref ="glide" } +glide-ksp = { group = "com.github.bumptech.glide", name = "ksp", version.ref ="glide" } +glide-volley-integration = { group = "com.github.bumptech.glide", name = "volley-integration", version.ref ="glide" } +google-exoPlayer = { group = "com.google.android.exoplayer", name = "exoplayer", version.ref ="exoPlayer" } +google-flexbox = { group = "com.google.android.flexbox", name = "flexbox", version.ref = "googleFlexbox" } +google-gson = { group = "com.google.code.gson", name = "gson", version.ref = "googleGson" } +google-material = { group = "com.google.android.material", name = "material", version.ref = "googleMaterial" } +google-mlkit-barcode-scanning = { group = "com.google.mlkit", name = "barcode-scanning", version.ref ="googleMLKitBarcodeScanning" } +google-mlkit-barcode-scanning-common = { group = "com.google.mlkit", name = "barcode-scanning-common", version.ref ="googleMLKitBarcodeScanningCommon" } +google-mlkit-text-recognition = { group = "com.google.mlkit", name = "text-recognition", version.ref ="googleMLKitTextRecognition" } +google-play-review = { group = "com.google.android.play", name = "review", version.ref ="googlePlayReview" } +google-play-review-ktx = { group = "com.google.android.play", name = "review-ktx", version.ref ="googlePlayReview" } +google-play-services-auth = { group = "com.google.android.gms", name = "play-services-auth", version.ref ="googlePlayServicesAuth" } +greenrobot-eventBus = { group = "org.greenrobot", name = "eventbus", version.ref ="eventBus" } +greenrobot-eventBus-java = { group = "org.greenrobot", name = "eventbus-java", version.ref ="eventBus" } +indexos-media-for-mobile-android = { group = "com.github.indexos.media-for-mobile", name = "android", version.ref ="indexosMediaForMobile" } +indexos-media-for-mobile-domain = { group = "com.github.indexos.media-for-mobile", name = "domain", version.ref ="indexosMediaForMobile" } +jsoup = { group = "org.jsoup", name = "jsoup", version.ref ="jsoup" } +junit = { group = "junit", name = "junit", version.ref ="junit" } +kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin" } +kotlin-test-junit = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" } +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref ="kotlinxCoroutines" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref ="kotlinxCoroutines" } +kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref ="kotlinxCoroutines" } +ksp-sympol-processing-api = { group = "com.google.devtools.ksp", name = "symbol-processing-api", version.ref = "ksp" } +lottie = { group = "com.airbnb.android", name = "lottie", version.ref ="lottie" } +lottie-compose = { group = "com.airbnb.android", name = "lottie-compose", version.ref ="lottie" } +mockito-android = { group = "org.mockito", name = "mockito-android", version.ref ="mockitoAndroid" } +mockito-kotlin = { group = "org.mockito.kotlin", name = "mockito-kotlin", version.ref ="mockitoKotlin" } +philJay-mpAndroidChart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref ="philjayMpAndroidChart" } +squareup-kotlinpoet = { group = "com.squareup", name = "kotlinpoet", version.ref ="squareupKotlinPoet" } +squareup-kotlinpoet-ksp = { group = "com.squareup", name = "kotlinpoet-ksp", version.ref ="squareupKotlinPoet" } +squareup-okhttp-mockWebServer = { group = "com.squareup.okhttp3", name = "mockwebserver", version.ref ="squareupMockWebServer" } +squareup-retrofit2 = { group = "com.squareup.retrofit2", name = "retrofit", version.ref ="squareupRetrofit" } +ucrop = { group = "com.github.yalantis", name = "ucrop", version.ref = "uCrop" } +volley = { group = "com.android.volley", name = "volley", version.ref = "volley" } +wiremock = { group = "com.github.tomakehurst", name = "wiremock", version.ref ="wiremock" } +wiremock-httpclient-android = { group = "org.apache.httpcomponents", name = "httpclient-android", version.ref ="wiremockHttpClient" } +wordpress-lint = { group = "org.wordpress", name = "lint", version.ref = "wordPressLint" } +wordPress-persistentEditText = { group = "org.wordpress", name = "persistentedittext", version.ref = "wordPressPersistentEditText" } +wordpress-utils = { group = "org.wordpress", name = "utils", version.ref = "wordPressUtils" } +zendesk = { group = "com.zendesk", name = "support", version.ref ="zendesk" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } +automattic-measure-builds = { id = "com.automattic.android.measure-builds", version.ref = "automatticMeasureBuilds" } +dagger = { id = "com.google.dagger.hilt.android", version.ref = "dagger" } +dependency-analysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +google-services = { id = "com.google.gms.google-services", version.ref = "googleServices" } +kotlin-allopen = { id = "org.jetbrains.kotlin.plugin.allopen", version.ref = "kotlin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +kotlix-kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kotlinxKover" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin", version.ref = "androidxNavigation" } +sentry = { id = "io.sentry.android.gradle", version.ref = "sentry" } +violation-comments = { id = "se.bjurr.violations.violation-comments-to-github-gradle-plugin", version.ref = "violationComments" } diff --git a/libs/analytics/build.gradle b/libs/analytics/build.gradle index d3e8edf28570..71cf7513d206 100644 --- a/libs/analytics/build.gradle +++ b/libs/analytics/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.android.library" + alias(libs.plugins.android.library) } repositories { @@ -14,12 +14,12 @@ repositories { } dependencies { - implementation "com.automattic:Automattic-Tracks-Android:$automatticTracksVersion" - implementation "org.wordpress:utils:$wordPressUtilsVersion" + implementation libs.automattic.tracks.android + implementation libs.wordpress.utils - implementation "androidx.preference:preference:$androidxPreferenceVersion" + implementation libs.androidx.preference - lintChecks "org.wordpress:lint:$wordPressLintVersion" + lintChecks libs.wordpress.lint } android { diff --git a/libs/annotations/build.gradle b/libs/annotations/build.gradle index 38dacf593233..03c19ecfd20e 100644 --- a/libs/annotations/build.gradle +++ b/libs/annotations/build.gradle @@ -1,5 +1,5 @@ plugins { - id "org.jetbrains.kotlin.jvm" + alias(libs.plugins.kotlin.jvm) } sourceCompatibility = JavaVersion.VERSION_1_8 diff --git a/libs/editor/build.gradle b/libs/editor/build.gradle index d50c03155102..cd91a719220b 100644 --- a/libs/editor/build.gradle +++ b/libs/editor/build.gradle @@ -1,8 +1,8 @@ plugins { - id "com.android.library" - id "org.jetbrains.kotlin.android" - id "org.jetbrains.kotlin.plugin.parcelize" - id "org.jetbrains.kotlinx.kover" + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.kotlix.kover) } repositories { @@ -59,33 +59,39 @@ android { dependencies { implementation ("$gradle.ext.wputilsBinaryPath") { version { - strictly wordPressUtilsVersion + strictly libs.versions.wordPressUtils.get() } } api ("$gradle.ext.aztecAndroidAztecPath") { exclude group: "com.android.volley" exclude group: 'org.wordpress', module: 'utils' version { - strictly wordPressAztecVersion + strictly libs.versions.wordPressAztec.get() } } - api ("$gradle.ext.aztecAndroidWordPressShortcodesPath:$wordPressAztecVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + api ("$gradle.ext.aztecAndroidWordPressShortcodesPath:${libs.versions.wordPressAztec.get()}") { version { - strictly wordPressAztecVersion + strictly libs.versions.wordPressAztec.get() } } - api ("$gradle.ext.aztecAndroidWordPressCommentsPath:$wordPressAztecVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + api ("$gradle.ext.aztecAndroidWordPressCommentsPath:${libs.versions.wordPressAztec.get()}") { version { - strictly wordPressAztecVersion + strictly libs.versions.wordPressAztec.get() } } - implementation "com.facebook.react:hermes-android:$facebookReactVersion" - implementation "com.facebook.react:react-android:$facebookReactVersion" + implementation libs.facebook.react.hermesAndroid + implementation libs.facebook.react.android // This dependency will be substituted if the `local-builds.gradle` file contains // `localGutenbergMobilePath`. Details for this can be found in the `settings.gradle` file. - implementation ("$rootProject.gradle.ext.gutenbergMobileBinaryPath:$rootProject.ext.gutenbergMobileVersion") { + // TODO: Migrate from composite build path modules to version catalogs (libs.version.toml). + // noinspection UseTomlInstead + implementation ("$rootProject.gradle.ext.gutenbergMobileBinaryPath:${libs.versions.gutenbergMobile.get()}") { // We exclude React Native modules from older and newer versions. // This is needed to avoid Duplicate class errors when building using local Gutenberg Mobile path. exclude module: 'hermes-engine' @@ -94,19 +100,19 @@ dependencies { exclude module: 'react-android' } - implementation "org.wordpress:utils:$wordPressUtilsVersion" + implementation libs.wordpress.utils - implementation "androidx.lifecycle:lifecycle-common:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-runtime:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-livedata-core:$androidxLifecycleVersion" - implementation "androidx.core:core:$androidxCoreVersion" - implementation "androidx.fragment:fragment:$androidxFragmentVersion" - implementation "androidx.appcompat:appcompat:$androidxAppcompatVersion" - implementation "androidx.preference:preference:$androidxPreferenceVersion" - implementation "com.google.android.material:material:$googleMaterialVersion" - implementation "com.android.volley:volley:$androidVolleyVersion" - implementation "com.google.code.gson:gson:$googleGsonVersion" - implementation "com.automattic.tracks:crashlogging:$automatticTracksVersion" + implementation libs.androidx.lifecycle.common + implementation libs.androidx.lifecycle.runtime + implementation libs.androidx.lifecycle.livedata.core + implementation libs.androidx.core + implementation libs.androidx.fragment + implementation libs.androidx.appcompat + implementation libs.androidx.preference + implementation libs.google.material + implementation libs.volley + implementation libs.google.gson + implementation libs.automattic.tracks.crashlogging - lintChecks "org.wordpress:lint:$wordPressLintVersion" + lintChecks libs.wordpress.lint } diff --git a/libs/image-editor/build.gradle b/libs/image-editor/build.gradle index 2cdd7f6bf40f..53de7fc7d98a 100644 --- a/libs/image-editor/build.gradle +++ b/libs/image-editor/build.gradle @@ -1,9 +1,9 @@ plugins { - id "com.android.library" - id "org.jetbrains.kotlin.android" - id "org.jetbrains.kotlin.plugin.parcelize" - id "androidx.navigation.safeargs.kotlin" - id "org.jetbrains.kotlinx.kover" + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.parcelize) + alias(libs.plugins.navigation.safeargs) + alias(libs.plugins.kotlix.kover) } android { @@ -46,42 +46,44 @@ repositories { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation "androidx.core:core:$androidxCoreVersion" - implementation "androidx.activity:activity:$androidxActivityVersion" - implementation "androidx.activity:activity-ktx:$androidxActivityVersion" - implementation "androidx.fragment:fragment:$androidxFragmentVersion" - implementation "androidx.appcompat:appcompat:$androidxAppcompatVersion" - implementation "androidx.recyclerview:recyclerview:$androidxRecyclerviewVersion" - implementation "androidx.constraintlayout:constraintlayout:$androidxConstraintlayoutVersion" - implementation "androidx.viewpager2:viewpager2:$androidxViewpager2Version" - implementation "com.google.android.material:material:$googleMaterialVersion" - implementation "androidx.navigation:navigation-fragment:$gradle.ext.navigationVersion" - implementation "androidx.navigation:navigation-ui:$gradle.ext.navigationVersion" - implementation "androidx.lifecycle:lifecycle-common:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-runtime:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-viewmodel:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$androidxLifecycleVersion" - implementation "androidx.lifecycle:lifecycle-livedata-core:$androidxLifecycleVersion" - implementation ("com.github.yalantis:ucrop:$uCropVersion") { + implementation libs.androidx.core + implementation libs.androidx.activity + implementation libs.androidx.activity.ktx + implementation libs.androidx.fragment + implementation libs.androidx.appcompat + implementation libs.androidx.recyclerView + implementation libs.androidx.constraintLayout + implementation libs.androidx.viewPager2 + implementation libs.google.material + implementation libs.androidx.navigation.fragment + implementation libs.androidx.navigation.ui + implementation libs.androidx.lifecycle.common + implementation libs.androidx.lifecycle.runtime + implementation libs.androidx.lifecycle.viewmodel + implementation libs.androidx.lifecycle.viewmodel.savedstate + implementation libs.androidx.lifecycle.livedata.core + implementation (libs.ucrop) { exclude group: 'com.squareup.okhttp3' exclude group: 'androidx.core', module: 'core' exclude group: 'androidx.constraintlayout', module: 'constraintlayout' exclude group: 'androidx.appcompat', module: 'appcompat' } - testImplementation "org.mockito.kotlin:mockito-kotlin:$mockitoKotlinVersion" - testImplementation "junit:junit:$junitVersion" - testImplementation "org.assertj:assertj-core:$assertjVersion" - testImplementation("androidx.arch.core:core-testing:$androidxArchCoreVersion", { + testImplementation libs.mockito.kotlin + testImplementation libs.junit + testImplementation libs.assertj.core + testImplementation(libs.androidx.arch.core.testing, { exclude group: 'com.android.support', module: 'support-compat' exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-core-utils' }) - androidTestImplementation "androidx.test.ext:junit:$androidxTestExtJunitVersion" - androidTestImplementation("androidx.test.espresso:espresso-core:$androidxTestEspressoVersion") { - version { - strictly androidxTestEspressoVersion + androidTestImplementation libs.androidx.test.ext.junit + androidTestImplementation(libs.androidx.test.espresso.core) { + { + version { + strictly libs.versions.androidxTestEspresso.get() + } } } } diff --git a/libs/mocks/build.gradle b/libs/mocks/build.gradle index a6ee6d448194..a837cdcc184e 100644 --- a/libs/mocks/build.gradle +++ b/libs/mocks/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.android.library" + alias(libs.plugins.android.library) } android { @@ -18,11 +18,11 @@ android { } dependencies { - implementation("com.github.tomakehurst:wiremock:$wiremockVersion") { + implementation(libs.wiremock) { exclude group: 'org.apache.httpcomponents', module: 'httpclient' exclude group: 'org.apache.commons', module: 'commons-lang3' exclude group: 'asm', module: 'asm' exclude group: 'org.json', module: 'json' } - implementation "org.apache.httpcomponents:httpclient-android:$wiremockHttpClientVersion" + implementation libs.wiremock.httpclient.android } diff --git a/libs/networking/build.gradle b/libs/networking/build.gradle index 457a92785de9..131fd8dcc2e3 100644 --- a/libs/networking/build.gradle +++ b/libs/networking/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.android.library" + alias(libs.plugins.android.library) } android { @@ -27,13 +27,13 @@ repositories { } dependencies { - implementation ("com.automattic:rest:$automatticRestVersion") { + implementation (libs.automattic.rest) { exclude group: 'com.mcxiaoke.volley' } - implementation "org.wordpress:utils:$wordPressUtilsVersion" + implementation libs.wordpress.utils - implementation "com.android.volley:volley:$androidVolleyVersion" - implementation "androidx.annotation:annotation:$androidxAnnotationVersion" + implementation libs.volley + implementation libs.androidx.annotation - lintChecks "org.wordpress:lint:$wordPressLintVersion" + lintChecks libs.wordpress.lint } diff --git a/libs/processors/build.gradle b/libs/processors/build.gradle index 6baeb1bb411d..562a0080116d 100644 --- a/libs/processors/build.gradle +++ b/libs/processors/build.gradle @@ -1,6 +1,6 @@ plugins { - id "org.jetbrains.kotlin.jvm" - id "org.jetbrains.kotlinx.kover" + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.kotlix.kover) } sourceCompatibility = JavaVersion.VERSION_1_8 @@ -9,14 +9,14 @@ targetCompatibility = JavaVersion.VERSION_1_8 dependencies { implementation project(":libs:annotations") - implementation "com.squareup:kotlinpoet:$squareupKotlinPoetVersion" - implementation "com.squareup:kotlinpoet-ksp:$squareupKotlinPoetVersion" - implementation "com.google.devtools.ksp:symbol-processing-api:$gradle.ext.kspVersion" + implementation libs.squareup.kotlinpoet + implementation libs.squareup.kotlinpoet.ksp + implementation libs.ksp.sympol.processing.api def kctVersion = "1.5.0" testImplementation "com.github.tschuchortdev:kotlin-compile-testing:$kctVersion" testImplementation "com.github.tschuchortdev:kotlin-compile-testing-ksp:$kctVersion" - testImplementation "junit:junit:$junitVersion" - testImplementation "org.assertj:assertj-core:$assertjVersion" - testImplementation "org.jetbrains.kotlin:kotlin-reflect:$gradle.ext.kotlinVersion" + testImplementation libs.junit + testImplementation libs.assertj.core + testImplementation libs.kotlin.reflect } diff --git a/settings.gradle b/settings.gradle index 987cdf6d6775..b63822b37efb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,36 +1,4 @@ pluginManagement { - gradle.ext.kotlinVersion = '1.9.22' - gradle.ext.kspVersion = '1.9.22-1.0.17' - gradle.ext.agpVersion = '8.1.0' - gradle.ext.googleServicesVersion = '4.3.15' - gradle.ext.navigationVersion = '2.7.7' - gradle.ext.sentryVersion = '4.3.1' - gradle.ext.daggerVersion = "2.50" - gradle.ext.detektVersion = '1.23.0' - gradle.ext.violationCommentsVersion = '1.70.0' - gradle.ext.measureBuildsVersion = '3.1.0' - gradle.ext.koverVersion = '0.7.5' - gradle.ext.dependencyAnalysisVersion = '1.28.0' - - plugins { - id "org.jetbrains.kotlin.android" version gradle.ext.kotlinVersion - id "org.jetbrains.kotlin.jvm" version gradle.ext.kotlinVersion - id "org.jetbrains.kotlin.plugin.serialization" version gradle.ext.kotlinVersion - id "org.jetbrains.kotlin.plugin.parcelize" version gradle.ext.kotlinVersion - id "org.jetbrains.kotlin.plugin.allopen" version gradle.ext.kotlinVersion - id "com.android.application" version gradle.ext.agpVersion - id "com.android.library" version gradle.ext.agpVersion - id 'com.google.gms.google-services' version gradle.ext.googleServicesVersion - id "androidx.navigation.safeargs.kotlin" version gradle.ext.navigationVersion - id "io.sentry.android.gradle" version gradle.ext.sentryVersion - id "io.gitlab.arturbosch.detekt" version gradle.ext.detektVersion - id "se.bjurr.violations.violation-comments-to-github-gradle-plugin" version gradle.ext.violationCommentsVersion - id 'com.automattic.android.measure-builds' version gradle.ext.measureBuildsVersion - id "org.jetbrains.kotlinx.kover" version gradle.ext.koverVersion - id "com.google.dagger.hilt.android" version gradle.ext.daggerVersion - id "com.google.devtools.ksp" version gradle.ext.kspVersion - id "com.autonomousapps.dependency-analysis" version gradle.ext.dependencyAnalysisVersion - } repositories { maven { url 'https://a8c-libs.s3.amazonaws.com/android'