Skip to content

Commit

Permalink
refactor: introduce version catalog (#1898)
Browse files Browse the repository at this point in the history
* refactor: use gradle version catalog

* chore: bump compose compiler to 1.4.7

* chore: match versions on develop

* refactor: move runtime dependencies to version catalog

* chore: update kalium reference

* chore: remove unnecessary feature flag

* chore: remove unused dependency definition
  • Loading branch information
vitorhugods authored Jul 3, 2023
1 parent e4ab8a7 commit 7519d5a
Show file tree
Hide file tree
Showing 10 changed files with 360 additions and 329 deletions.
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ out/

# Gradle files
.gradle/
gradle/*
build/

# Local configuration file (sdk path, etc)
Expand Down
230 changes: 105 additions & 125 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,10 @@ plugins {
id(BuildPlugins.hilt)
id(BuildPlugins.junit5)
kotlin(BuildPlugins.kapt)
kotlin(BuildPlugins.serialization) version Libraries.Versions.kotlin
alias(libs.plugins.kotlin.serialization)

id(libs.plugins.aboutLibraries.get().pluginId)

id(ScriptPlugins.aboutLibraries)
// Internal Script plugins
id(ScriptPlugins.variants)
id(ScriptPlugins.quality)
Expand Down Expand Up @@ -72,7 +73,7 @@ android {
}

composeOptions {
kotlinCompilerExtensionVersion = Libraries.Versions.composeCompiler
kotlinCompilerExtensionVersion = findVersion("compose.compiler").requiredVersion
}

sourceSets {
Expand Down Expand Up @@ -108,156 +109,135 @@ kapt {
correctErrorTypes = true
}

configurations {
all {
resolutionStrategy {
// Force dependencies to resolve coroutines versions to native-mt variant
force(Libraries.Kotlin.coroutinesCore)
force(Libraries.Kotlin.coroutinesAndroid)
}
}
}

dependencies {
implementation("com.wire.kalium:kalium-logic")
implementation("com.wire.kalium:kalium-util")

// Application dependencies
implementation(Libraries.Kotlin.stdLib)
implementation(Libraries.appCompat)
implementation(Libraries.ktxCore)
implementation(Libraries.ktxDateTime)
implementation(Libraries.constraintLayout)
implementation(Libraries.material)
implementation(Libraries.Kotlin.coroutinesCore)
implementation(Libraries.Kotlin.coroutinesAndroid)
implementation(Libraries.visibilityModifiers)
implementation(Libraries.browser)
implementation(Libraries.dataStore)
implementation(Libraries.splashscreen)
implementation(Libraries.exifInterface)
implementation(Libraries.Kotlin.serialization)
implementation(Libraries.ktxImmutableCollections)

// Image handling
implementation(Libraries.coil)
implementation(Libraries.coilGif)
implementation(Libraries.coilCompose)

/** lifecycle **/
// ViewModel
implementation(Libraries.Lifecycle.viewModel)
// ViewModel utilities for Compose
implementation(Libraries.Lifecycle.viewModelCompose)
// LiveData
implementation(Libraries.Lifecycle.liveData)
// Lifecycles only (without ViewModel or LiveData)
implementation(Libraries.Lifecycle.runtime)
// Saved state module for ViewModel
implementation(Libraries.Lifecycle.viewModelSavedState)
implementation(libs.androidx.appcompat)
implementation(libs.androidx.core)
implementation(libs.androidx.browser)
implementation(libs.androidx.dataStore)
implementation(libs.androidx.splashscreen)
implementation(libs.androidx.exifInterface)

implementation(libs.ktx.dateTime)
implementation(libs.material)
implementation(libs.coroutines.android)
implementation(libs.visibilityModifiers)
implementation(libs.ktx.serialization)
implementation(libs.ktx.immutableCollections)

// Image loading
implementation(libs.coil.core)
implementation(libs.coil.gif)
implementation(libs.coil.compose)

// Androidx - Lifecycle
implementation(libs.androidx.lifecycle.viewModel)
implementation(libs.androidx.lifecycle.viewModelCompose)
implementation(libs.androidx.lifecycle.liveData)
implementation(libs.androidx.lifecycle.runtime)
implementation(libs.androidx.lifecycle.viewModelSavedState)

// Compose
implementation(Libraries.composeUi)
implementation(Libraries.composeFoundation)
implementation(libs.compose.core)
implementation(libs.compose.foundation)
// we still cannot get rid of material2 because swipeable is still missing - https://issuetracker.google.com/issues/229839039
// https://developer.android.com/jetpack/compose/designsystems/material2-material3#components-and
implementation(Libraries.composeMaterial)
implementation(Libraries.composeMaterial3)
implementation(libs.compose.material.core)
implementation(libs.compose.material3)
// the only libraries with material2 packages that can be used with material3 are icons and ripple
implementation(Libraries.composeMaterialIcons)
implementation(Libraries.composeMaterialRipple)
implementation(Libraries.composePreview)
implementation(Libraries.composeActivity)
implementation(Libraries.composeNavigation)
implementation(Libraries.composeConstraintLayout)
implementation(Libraries.accompanistPager)
implementation(Libraries.accompanistSystemUI)
implementation(Libraries.accompanistPlaceholder)
implementation(Libraries.accompanistNavAnimation)
implementation(Libraries.accompanistIndicator)
implementation(Libraries.composeRuntimeLiveData)
implementation(Libraries.accompanistFlowLayout)

implementation(Libraries.Paging.runtime)
implementation(Libraries.Paging.compose)
implementation(libs.compose.material.icons)
implementation(libs.compose.material.ripple)
implementation(libs.compose.preview)
implementation(libs.compose.activity)
implementation(libs.compose.navigation)
implementation(libs.compose.constraintLayout)
implementation(libs.compose.liveData)

// Accompanist
implementation(libs.accompanist.pager)
implementation(libs.accompanist.systemUI)
implementation(libs.accompanist.placeholder)
implementation(libs.accompanist.navAnimation)
implementation(libs.accompanist.indicator)
implementation(libs.accompanist.flowLayout)

implementation(libs.androidx.paging3)
implementation(libs.androidx.paging3Compose)

// Compose iterative code, layout inspector, etc.
debugImplementation(Libraries.composeTooling)
debugImplementation(libs.compose.tooling)

// dagger/hilt
implementation(Libraries.Hilt.android)
implementation(Libraries.Hilt.navigationCompose)
kapt(Libraries.Hilt.compiler)
implementation(libs.hilt.android)
implementation(libs.hilt.navigationCompose)
implementation(libs.hilt.work)
kapt(libs.hilt.compiler)

// smaller view models
implementation (Libraries.resaca)
implementation (Libraries.Hilt.resaca)
implementation(libs.resaca.core)
implementation(libs.resaca.hilt)

// firebase
implementation(platform(Libraries.Firebase.firebaseBOM))
implementation(Libraries.Firebase.firebaseCloudMessaging)
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.fcm)

implementation(Libraries.workManager)
implementation(libs.androidx.work)

// commonMark
implementation(Libraries.CommonMark.core)
implementation(Libraries.CommonMark.strikethrough)
implementation(Libraries.CommonMark.tables)
implementation(libs.commonmark.core)
implementation(libs.commonmark.strikethrough)
implementation(libs.commonmark.tables)


implementation(Libraries.aboutLibraries.core)
implementation(Libraries.aboutLibraries.ui)

// TODO: remove or move to Libraries
implementation("androidx.appcompat:appcompat:1.4.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.2")
implementation(libs.aboutLibraries.core)
implementation(libs.aboutLibraries.ui)

// Unit/Android tests dependencies
testImplementation(TestLibraries.androidCore)
testImplementation(TestLibraries.junit4)
testImplementation(TestLibraries.robolectric)
testImplementation(TestLibraries.coroutinesTest)
testImplementation(TestLibraries.testCore)
testImplementation(TestLibraries.mockk)
testImplementation(TestLibraries.kluent)
testImplementation(TestLibraries.junit5)
testImplementation(TestLibraries.turbine)
testImplementation(TestLibraries.okio)
testRuntimeOnly(TestLibraries.junit5Engine)
testImplementation(libs.androidx.test.archCore)
testImplementation(libs.junit4) // Maybe migrate completely to Junit 5?
testImplementation(libs.junit5.core)
testImplementation(libs.coroutines.test)
testImplementation(libs.androidx.test.core)
testImplementation(libs.mockk.core)
testImplementation(libs.kluent.core)
testImplementation(libs.turbine)
testImplementation(libs.okio.fakeFileSystem)
testRuntimeOnly(libs.junit5.engine)

// Acceptance/Functional tests dependencies
androidTestImplementation(TestLibraries.testRunner)
androidTestImplementation(TestLibraries.Espresso.core)
androidTestImplementation(TestLibraries.Espresso.intents)
androidTestImplementation(TestLibraries.Espresso.accessibility)
androidTestImplementation(TestLibraries.testExtJunit)
androidTestImplementation(TestLibraries.testRules)
androidTestImplementation(TestLibraries.uiAutomator)
androidTestImplementation(TestLibraries.coroutinesTest)
androidTestImplementation(TestLibraries.mockkAndroid)
androidTestImplementation(TestLibraries.kluentAndroid)
androidTestImplementation(TestLibraries.composeJunit)
debugImplementation(TestLibraries.composeManifest)
androidTestImplementation(Libraries.Hilt.android)
androidTestImplementation(Libraries.Hilt.hiltTest)
androidTestImplementation(TestLibraries.workManager)
kaptAndroidTest(Libraries.Hilt.compiler)
androidTestUtil(TestLibraries.testOrchestrator)

implementation(Libraries.Hilt.hiltWork)
kaptAndroidTest(libs.hilt.compiler)
androidTestImplementation(libs.hilt.android)
androidTestImplementation(libs.hilt.test)

androidTestImplementation(libs.androidx.test.runner)
androidTestImplementation(libs.androidx.test.rules)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(libs.androidx.espresso.intents)
androidTestImplementation(libs.androidx.espresso.accessibility)
androidTestImplementation(libs.androidx.test.extJunit)
androidTestImplementation(libs.androidx.test.uiAutomator)
androidTestImplementation(libs.androidx.test.work)

androidTestImplementation(libs.coroutines.test)
androidTestImplementation(libs.mockk.android)
androidTestImplementation(libs.kluent.android)
androidTestImplementation(libs.compose.test.junit)
debugImplementation(libs.compose.test.manifest)
androidTestUtil(libs.androidx.test.orchestrator)

// Development dependencies
debugImplementation(DevLibraries.leakCanary)
debugImplementation(libs.leakCanary)

// Internal, dev, beta and staging only tracking & logging

devImplementation(Libraries.dataDog)
internalImplementation(Libraries.dataDog)
betaImplementation(Libraries.dataDog)
stagingImplementation(Libraries.dataDog)

devImplementation(Libraries.dataDogCompose)
internalImplementation(Libraries.dataDogCompose)
betaImplementation(Libraries.dataDogCompose)
stagingImplementation(Libraries.dataDogCompose)
devImplementation(libs.dataDog.core)
internalImplementation(libs.dataDog.core)
betaImplementation(libs.dataDog.core)
stagingImplementation(libs.dataDog.core)

devImplementation(libs.dataDog.compose)
internalImplementation(libs.dataDog.compose)
betaImplementation(libs.dataDog.compose)
stagingImplementation(libs.dataDog.compose)
}
6 changes: 3 additions & 3 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,9 @@ buildscript {
maven(url ="https://plugins.gradle.org/m2/")
}
dependencies {
classpath("com.google.dagger:hilt-android-gradle-plugin:2.40")
classpath("com.google.gms:google-services:4.3.14")
classpath("com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:10.8.0")
classpath(libs.hilt.gradlePlugin)
classpath(libs.googleGms.gradlePlugin)
classpath(libs.aboutLibraries.gradlePlugin)
}
}

Expand Down
2 changes: 0 additions & 2 deletions buildSrc/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
*
*/

enableFeaturePreview("VERSION_CATALOGS")

dependencyResolutionManagement {
versionCatalogs {
create("klibs") {
Expand Down
Loading

0 comments on commit 7519d5a

Please sign in to comment.