feat: Introduce Version Catalog for Dependency Management (#1607)

* feat: Introduce Version Catalog for Dependency Management

This commit introduces a version catalog via `libs.versions.toml` to centralize and manage project dependencies. It replaces the previous hardcoded dependency versions in `app/build.gradle` with references to the version catalog. This change enhances maintainability and organization by centralizing dependency management.

- Added `gradle/libs.versions.toml` to define dependencies and their versions.
- Updated `app/build.gradle` to utilize dependencies from the version catalog.

* chore: migrate plugins to version catalog

* chore: sort lines in `libs.versions.toml`

-Sorts `versions`, `dependencies`, and `plugins` references alphabetically.

* feat: pin ZXing Core dependency

*   Suppressed warning about updating zxing-core to avoid confusion.
*   Added a note to avoid updating zxing-core.

* refactor: Enforce consistent `implementation()` calls in `build.gradle`

-   Ensures all library dependencies are called with `implementation(libs.xxx)` instead of `implementation libs.xxx` in `build.gradle`.

* feat: use version catalog bundles

- Updated dependencies in the app build.gradle to use bundles where possible.

* fix: fix ui test dependency declarations

* chore: comments for clarity

* fix: remove material3 from this PR
This commit is contained in:
James Rich 2025-02-24 18:42:37 -06:00 committed by GitHub
parent 1e9b1c2bc3
commit 4242afef9c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 238 additions and 141 deletions

View file

@ -3,9 +3,6 @@
buildscript {
ext {
useCrashlytics = false
kotlin_version = '2.1.10'
hilt_version = '2.55'
protobuf_version = '4.29.3'
}
repositories {
@ -13,30 +10,30 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.8.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath libs.agp
classpath libs.kotlin.gradle.plugin
classpath libs.kotlin.serialization
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
// Firebase Crashlytics
if (useCrashlytics) {
classpath 'com.google.gms:google-services:4.4.2'
classpath 'com.google.firebase:firebase-crashlytics-gradle:3.0.3'
classpath libs.google.services
classpath libs.firebase.crashlytics.gradle
}
// protobuf plugin - docs here https://github.com/google/protobuf-gradle-plugin
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.9.4'
classpath libs.protobuf.gradle.plugin
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
classpath libs.hilt.android.gradle.plugin
}
}
plugins {
id "org.jetbrains.kotlin.jvm" version "$kotlin_version" apply false
id "com.google.devtools.ksp" version "2.1.10-1.0.30" apply false
id "org.jetbrains.kotlin.plugin.compose" version "$kotlin_version" apply false
alias (libs.plugins.kotlin.jvm) apply false
alias (libs.plugins.devtools.ksp) apply false
alias (libs.plugins.compose) apply false
}
allprojects {