Skip to content

Commit

Permalink
migrated to version catalog.
Browse files Browse the repository at this point in the history
  • Loading branch information
syslogic committed Mar 22, 2024
1 parent 7f0d8db commit 20f2317
Show file tree
Hide file tree
Showing 6 changed files with 134 additions and 98 deletions.
44 changes: 4 additions & 40 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,42 +1,8 @@
// root build.gradle
buildscript {
ext {
android_gradle_plugin_version = '8.3.1'
material_design_version = '1.11.0'
kotlin_version = '1.9.21'
retrofit_version = '2.9.0'
gson_version = '2.10.1'
junit_version = '4.13.2'
flexbox_version = '3.0.0'

// DirCacheCheckout.java uses InputStream.transferTo() since 6.3; no such method on Android.
jgit_version = '6.2.0.202206071550-r' // instead of 6.5.0.202303070854-r
slf4j_version = '2.0.9'

androidx_appcompat_version = '1.6.1'
androidx_annotation_version = '1.6.0'
androidx_fragment_version = '1.6.2'
androidx_navigation_version = '2.7.7'
androidx_room_version = '2.6.1'
androidx_splash_version = '1.0.1'
androidx_recyclerview_version = '1.3.2'
androidx_preference_version = '1.2.1'
androidx_cardview_version = '1.0.0'

androidx_test_junit_version = '1.1.5'
androidx_test_core_version = '1.5.0'
androidx_test_monitor_version = '1.6.1'
androidx_test_runner_version = '1.5.2'
androidx_test_rules_version = '1.5.0'
androidx_test_uiautomator_version = '2.3.0'
androidx_test_espresso_version = '3.5.1'
}
}

plugins {
id 'com.android.application' version "$android_gradle_plugin_version" apply false
id 'com.android.library' version "$android_gradle_plugin_version" apply false
id 'androidx.navigation.safeargs' version "$androidx_navigation_version" apply false
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.androidx.navigation.safeargs) apply false
}

/** Version Settings, loaded from file `version.properties` */
Expand Down Expand Up @@ -74,9 +40,7 @@ allprojects {
def requested = details.requested
if (requested.group == 'org.jetbrains.kotlin') {
List<String> list = ['kotlin-stdlib', 'kotlin-stdlib-jdk7', 'kotlin-stdlib-jdk8', 'kotlin-stdlib-common']
if (list.contains(requested.name)) {
details.useVersion "$kotlin_version"
}
if (list.contains(requested.name)) { details.useVersion libs.versions.kotlin.get() }
}
}
}
Expand Down
38 changes: 19 additions & 19 deletions library/build.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
plugins {
id 'com.android.library'
alias(libs.plugins.android.library)
alias(libs.plugins.androidx.room)
id 'maven-publish'
}

Expand All @@ -16,20 +17,19 @@ android {
targetSdk 34
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFile "${project.rootDir}/proguard/consumer.pro"
javaCompileOptions {
annotationProcessorOptions {
arguments = [ "room.schemaLocation": "$rootDir/schema".toString() ]
}
}
}

sourceSets.main.java.srcDirs = [ "src/main/java" ]
room {
schemaDirectory("${rootDir}/schema")
}

compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}

sourceSets.main.java.srcDirs = [ "src/main/java" ]

buildFeatures {
buildConfig true
dataBinding true
Expand Down Expand Up @@ -65,31 +65,31 @@ android {
dependencies {

// Material Design Components
implementation "com.google.android.material:material:$material_design_version"
implementation libs.material.design

// Annotations
implementation "androidx.annotation:annotation:$androidx_annotation_version"
implementation libs.androidx.annotation

// App Compat
implementation "androidx.appcompat:appcompat:$androidx_appcompat_version"
implementation libs.androidx.appcompat

// Data-Binding Runtime
implementation "androidx.databinding:databinding-runtime:$android_gradle_plugin_version"
implementation libs.androidx.databinding

// Room Runtime
annotationProcessor "androidx.room:room-compiler:$androidx_room_version"
testImplementation "androidx.room:room-testing:$androidx_room_version"
implementation "androidx.room:room-runtime:$androidx_room_version"
annotationProcessor libs.androidx.room.compiler
testImplementation libs.androidx.room.testing
implementation libs.androidx.room.runtime

// Retrofit2
implementation "com.google.code.gson:gson:$gson_version"
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation ("com.squareup.retrofit2:converter-gson:$retrofit_version") {
implementation libs.gson
implementation libs.retrofit
implementation (libs.retrofit.gson.converter) {
exclude group: "com.google.code.gson", module: "gson"
}

testImplementation "junit:junit:$junit_version"
androidTestImplementation "androidx.test.ext:junit:$androidx_test_junit_version"
testImplementation libs.junit
androidTestImplementation libs.androidx.test.junit
}

tasks.register('javadoc', Javadoc) {
Expand Down
65 changes: 65 additions & 0 deletions libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
[versions]
android_gradle_plugin = '8.3.1'
material_design = '1.11.0'
kotlin = '1.9.22'
retrofit = '2.9.0'
gson = '2.10.1'
junit = '4.13.2'
flexbox = '3.0.0'
jgit = '6.2.0.202206071550-r'
slf4j = '2.0.9'
androidx_appcompat = '1.6.1'
androidx_annotation = '1.7.1'
androidx_navigation = '2.7.7'
androidx_fragment = '1.6.2'
androidx_recyclerview = '1.3.2'
androidx_cardview = '1.0.0'
androidx_preference = '1.2.1'
androidx_room = '2.6.1'
androidx_splashscreen = '1.0.1'
androidx_test_junit = '1.1.5'
androidx_test_core = '1.5.0'
androidx_test_rules = '1.5.0'
androidx_test_runner = '1.5.2'
androidx_test_monitor = '1.6.1'
androidx_test_uiautomator = '2.3.0'
androidx_test_espresso = '3.5.1'

[plugins]
android_application = { id = "com.android.application", version.ref = "android_gradle_plugin" }
android_library = { id = "com.android.library", version.ref = "android_gradle_plugin" }
androidx_navigation_safeargs = { id = "androidx.navigation.safeargs", version.ref = "androidx_navigation" }
androidx_room = { id = "androidx.room", version.ref = "androidx_room" }

[libraries]
material_design = { module = "com.google.android.material:material", version.ref = "material_design" }
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
junit = { module = "junit:junit", version.ref = "junit" }
flexbox = { module = "com.google.android.flexbox:flexbox", version.ref = "flexbox" }
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
retrofit_gson_converter = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" }
# DirCacheCheckout.java uses InputStream.transferTo() since 6.3; no such method on Android.
jgit = { module = "org.eclipse.jgit:org.eclipse.jgit", version.ref = "jgit" }
slf4j = { module = "org.slf4j:slf4j-simple", version.ref = "slf4j" }
androidx_databinding = { module = "androidx.databinding:databinding-runtime", version.ref = "android_gradle_plugin" }
androidx_appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx_appcompat" }
androidx_annotation = { module = "androidx.annotation:annotation", version.ref = "androidx_annotation" }
androidx_fragment = { module = "androidx.fragment:fragment", version.ref = "androidx_fragment" }
androidx_fragment_testing = { module = "androidx.fragment:fragment-testing", version.ref = "androidx_fragment" }
androidx_recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx_recyclerview" }
androidx_cardview = { module = "androidx.cardview:cardview", version.ref = "androidx_cardview" }
androidx_preference = { module = "androidx.preference:preference", version.ref = "androidx_preference" }
androidx_navigation_testing = { module = "androidx.navigation:navigation-testing", version.ref = "androidx_navigation" }
androidx_navigation_fragment = { module = "androidx.navigation:navigation-fragment", version.ref = "androidx_navigation" }
androidx_room_testing = { module = "androidx.room:room-testing", version.ref = "androidx_room" }
androidx_room_compiler = { module = "androidx.room:room-compiler", version.ref = "androidx_room" }
androidx_room_runtime = { module = "androidx.room:room-runtime", version.ref = "androidx_room" }
androidx_splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidx_splashscreen" }
androidx_test_monitor = { module = "androidx.test:monitor", version.ref = "androidx_test_monitor" }
androidx_test_junit = { module = "androidx.test.ext:junit", version.ref = "androidx_test_junit" }
androidx_test_core = { module = "androidx.test:core", version.ref = "androidx_test_core" }
androidx_test_rules = { module = "androidx.test:rules", version.ref = "androidx_test_rules" }
androidx_test_runner = { module = "androidx.test:runner", version.ref = "androidx_test_runner" }
androidx_test_uiautomator = { module = "androidx.test.uiautomator:uiautomator", version.ref = "androidx_test_uiautomator" }
androidx_espresso_core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidx_test_espresso" }
androidx_espresso_web = { module = "androidx.test.espresso:espresso-web", version.ref = "androidx_test_espresso" }
78 changes: 40 additions & 38 deletions mobile/build.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
// :mobile build.gradle
plugins {
id "com.android.application"
id "androidx.navigation.safeargs"
alias(libs.plugins.android.application)
alias(libs.plugins.androidx.navigation.safeargs)
alias(libs.plugins.androidx.room)
}

/** Load API access-token from file `token.properties` */
Expand All @@ -27,18 +28,17 @@ android {
minSdk 22
targetSdk 34
applicationId 'io.syslogic.github'
//noinspection GroovyConstructorNamedArguments
manifestPlaceholders = [ accessToken: "" ]
versionName rootProject.ext.get('versionName')
versionCode rootProject.ext.get('versionCode')
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testBuildType "debug"
multiDexEnabled true
}

javaCompileOptions {
annotationProcessorOptions {
arguments = [ "room.schemaLocation": "$rootDir/schema".toString() ]
}
}
room {
schemaDirectory("${rootDir}/schema")
}

compileOptions {
Expand All @@ -47,8 +47,8 @@ android {
}

sourceSets {
main {
androidTest.assets.srcDirs += files("$projectDir/schemas".toString())
androidTest {
assets.srcDirs += files("$projectDir/schemas".toString())
}
}

Expand Down Expand Up @@ -80,6 +80,7 @@ android {
debug {
applicationIdSuffix ".debug"
signingConfig signingConfigs.debug
//noinspection GroovyConstructorNamedArguments
manifestPlaceholders = [ accessToken: "${accessToken}" ]
renderscriptDebuggable true
pseudoLocalesEnabled false
Expand All @@ -91,6 +92,7 @@ android {
}
release {
signingConfig signingConfigs.release
//noinspection GroovyConstructorNamedArguments
manifestPlaceholders = [ accessToken: "" ]
proguardFile "${project.rootDir}/proguard/android.pro"
proguardFile "${project.rootDir}/proguard/androidx.pro"
Expand Down Expand Up @@ -122,73 +124,73 @@ dependencies {
api project(path: ':library')

// Material Design Components
implementation "com.google.android.material:material:$material_design_version"
implementation libs.material.design

// Annotations
implementation "androidx.annotation:annotation:$androidx_annotation_version"
implementation libs.androidx.annotation

// Flexbox Layout
implementation "com.google.android.flexbox:flexbox:$flexbox_version"
implementation libs.flexbox

// https://developer.android.com/jetpack/androidx/
implementation "androidx.appcompat:appcompat:$androidx_appcompat_version"
implementation "androidx.core:core-splashscreen:$androidx_splash_version"
implementation "androidx.recyclerview:recyclerview:$androidx_recyclerview_version"
implementation "androidx.preference:preference:$androidx_preference_version"
implementation "androidx.cardview:cardview:$androidx_cardview_version"
implementation libs.androidx.appcompat
implementation libs.androidx.splashscreen
implementation libs.androidx.recyclerview
implementation libs.androidx.preference
implementation libs.androidx.cardview

// Navigation
androidTestImplementation "androidx.navigation:navigation-testing:$androidx_navigation_version"
implementation "androidx.navigation:navigation-fragment:$androidx_navigation_version"
androidTestImplementation libs.androidx.navigation.testing
implementation libs.androidx.navigation.fragment

// Fragment
androidTestImplementation "androidx.fragment:fragment-testing:$androidx_fragment_version"
implementation "androidx.fragment:fragment:$androidx_fragment_version"
androidTestImplementation libs.androidx.fragment.testing
implementation libs.androidx.fragment

// Room Runtime
annotationProcessor "androidx.room:room-compiler:$androidx_room_version"
testImplementation "androidx.room:room-testing:$androidx_room_version"
implementation "androidx.room:room-runtime:$androidx_room_version"
annotationProcessor libs.androidx.room.compiler
testImplementation libs.androidx.room.testing
implementation libs.androidx.room.runtime

// Retrofit2
implementation "com.google.code.gson:gson:$gson_version"
implementation "com.squareup.retrofit2:retrofit:$retrofit_version"
implementation ("com.squareup.retrofit2:converter-gson:$retrofit_version") {
implementation libs.gson
implementation libs.retrofit
implementation (libs.retrofit.gson.converter) {
exclude group: "com.google.code.gson", module: "gson"
}

// https://mvnrepository.com/artifact/org.eclipse.jgit/org.eclipse.jgit
implementation "org.eclipse.jgit:org.eclipse.jgit:$jgit_version"
implementation libs.jgit

// https://mvnrepository.com/artifact/org.slf4j/slf4j-simple
// api "org.slf4j:slf4j-nop:$slf4j_version"
api "org.slf4j:slf4j-simple:$slf4j_version"
api libs.slf4j

// jUnit
testImplementation "junit:junit:$junit_version"
testImplementation libs.junit

// Required for connected tests.
// https://mvnrepository.com/artifact/androidx.test/monitor
debugImplementation "androidx.test:monitor:$androidx_test_monitor_version"
debugImplementation libs.androidx.test.monitor

// https://mvnrepository.com/artifact/androidx.test.ext
androidTestImplementation "androidx.test.ext:junit:$androidx_test_junit_version"
androidTestImplementation libs.androidx.test.junit

// https://mvnrepository.com/artifact/androidx.test
// https://developer.android.com/jetpack/androidx/releases/test
androidTestImplementation "androidx.test:core:$androidx_test_core_version"
androidTestImplementation "androidx.test:runner:$androidx_test_runner_version"
androidTestImplementation "androidx.test:rules:$androidx_test_rules_version"
androidTestImplementation libs.androidx.test.core
androidTestImplementation libs.androidx.test.runner
androidTestImplementation libs.androidx.test.rules

// https://mvnrepository.com/artifact/androidx.test.uiautomator/uiautomator
androidTestImplementation "androidx.test.uiautomator:uiautomator:$androidx_test_uiautomator_version"
androidTestImplementation libs.androidx.test.uiautomator

// Espresso
androidTestImplementation "androidx.test.espresso:espresso-core:$androidx_test_espresso_version"
androidTestImplementation libs.androidx.espresso.core
androidTestImplementation libs.androidx.espresso.web
// androidTestImplementation "androidx.test.espresso:espresso-contrib:$androidx_test_espresso_version"
// androidTestImplementation "androidx.test.espresso:espresso-intents:$androidx_test_espresso_version"
// androidTestImplementation "androidx.test.espresso:espresso-accessibility:$androidx_test_espresso_version"
androidTestImplementation "androidx.test.espresso:espresso-web:$androidx_test_espresso_version"
// androidTestImplementation "androidx.test.espresso.idling:idling-concurrent:$espresso_version"

// The following dependency can be either "implementation" or "androidTestImplementation",
Expand Down
5 changes: 5 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ dependencyResolutionManagement {
mavenCentral()
google()
}
versionCatalogs {
libs {
from(files("libs.versions.toml"))
}
}
}

rootProject.name = "GitHub Client"
Expand Down
2 changes: 1 addition & 1 deletion version.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
versionName = 1.0.2
versionName = 1.0.3
versionCode = 3

0 comments on commit 20f2317

Please sign in to comment.