Skip to content

Commit 437cd60

Browse files
authored
Apply common Stream convention plugins (#5986)
1 parent e2f9477 commit 437cd60

File tree

26 files changed

+63
-107
lines changed

26 files changed

+63
-107
lines changed

build.gradle.kts

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import com.android.build.api.dsl.ApplicationExtension
2+
import com.android.build.gradle.LibraryExtension
13
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
24
import io.getstream.chat.android.Dependencies
35
import io.getstream.chat.android.command.changelog.task.ChangelogReleaseSectionTask
@@ -19,6 +21,9 @@ plugins {
1921
alias(libs.plugins.google.services) apply false
2022
alias(libs.plugins.firebase.crashlytics) apply false
2123
alias(libs.plugins.spotless) apply false
24+
alias(libs.plugins.stream.android.library) apply false
25+
alias(libs.plugins.stream.android.application) apply false
26+
alias(libs.plugins.stream.java.library) apply false
2227
alias(libs.plugins.detekt) apply false
2328
alias(libs.plugins.shot) apply false
2429
alias(libs.plugins.androidx.navigation) apply false
@@ -52,10 +57,31 @@ apply(from = "${rootDir}/scripts/sonar.gradle")
5257
apply(from = "${rootDir}/scripts/coverage.gradle")
5358

5459
subprojects {
55-
if (name != "stream-chat-android-docs"
56-
&& buildFile.exists()) {
60+
if (name != "stream-chat-android-docs" && buildFile.exists()) {
5761
apply(from = "${rootDir}/spotless/spotless.gradle")
5862
}
63+
64+
// Configure Android projects with common SDK versions as soon as either plugin is applied
65+
pluginManager.withPlugin("com.android.library") {
66+
extensions.configure<LibraryExtension> {
67+
defaultConfig {
68+
compileSdk = libs.versions.compileSdk.get().toInt()
69+
minSdk = libs.versions.minSdk.get().toInt()
70+
lint.targetSdk = libs.versions.targetSdk.get().toInt()
71+
testOptions.targetSdk = libs.versions.targetSdk.get().toInt()
72+
}
73+
}
74+
}
75+
pluginManager.withPlugin("com.android.application") {
76+
extensions.configure<ApplicationExtension> {
77+
defaultConfig {
78+
compileSdk = libs.versions.compileSdk.get().toInt()
79+
minSdk = libs.versions.minSdk.get().toInt()
80+
targetSdk = libs.versions.targetSdk.get().toInt()
81+
}
82+
}
83+
}
84+
5985
apply(plugin = "io.gitlab.arturbosch.detekt")
6086
}
6187

@@ -70,7 +96,7 @@ tasks.withType<VersionPrintTask> {
7096
}
7197

7298
tasks.withType<UnitTestsTask> {
73-
config.outputPath = "build/tmp/unit-tests-command.sh"
99+
config.outputPath = "build/tmp/unit-tests-command.sh"
74100
}
75101

76102
tasks.withType<ReleaseTask> {
@@ -103,7 +129,7 @@ apiValidation {
103129
)
104130

105131
nonPublicMarkers += listOf(
106-
"io.getstream.chat.android.core.internal.InternalStreamChatApi",
132+
"io.getstream.chat.android.core.internal.InternalStreamChatApi",
107133
)
108134
}
109135

buildSrc/src/main/kotlin/io/getstream/chat/android/Configuration.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
package io.getstream.chat.android
22

33
object Configuration {
4-
const val compileSdk = 35
5-
const val targetSdk = 34
6-
const val sampleTargetSdk = 35
7-
const val minSdk = 21
84
const val majorVersion = 6
95
const val minorVersion = 26
106
const val patchVersion = 0

gradle/libs.versions.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
[versions]
2+
compileSdk = "35"
3+
targetSdk = "34"
4+
sampleTargetSdk = "35"
5+
minSdk = "21"
26
allureKotlin = "2.4.0"
37
androidGradlePlugin = "8.8.0"
48
androidJunit5GradlePlugin = "1.11.2.0"
@@ -78,6 +82,7 @@ shimmerCompose = "1.3.1"
7882
shot = "6.1.0"
7983
sonarqube = "6.0.1.5171"
8084
spotless = "6.20.0"
85+
streamConventions = "0.2.0"
8186
streamLog = "1.3.2"
8287
streamPush = "1.3.1"
8388
streamResult = "1.3.2"
@@ -244,5 +249,8 @@ nexus-publish = { id = "io.github.gradle-nexus.publish-plugin", version.ref = "g
244249
shot = { id = "shot", version.ref = "shot"}
245250
sonarqube = { id = "org.sonarqube", version.ref = "sonarqube"}
246251
spotless = { id = "com.diffplug.spotless", version.ref = "spotless"}
252+
stream-android-library = { id = "io.getstream.android.library", version.ref = "streamConventions" }
253+
stream-android-application = { id = "io.getstream.android.application", version.ref = "streamConventions" }
254+
stream-java-library = { id = "io.getstream.java.library", version.ref = "streamConventions" }
247255
paparazzi = { id = "app.cash.paparazzi", version.ref = "paparazzi"}
248256
kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover"}

metrics/stream-chat-android-metrics/build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
plugins {
2-
alias(libs.plugins.android.application)
2+
alias(libs.plugins.stream.android.application)
33
alias(libs.plugins.kotlin.android)
44
}
55

6-
apply(from = "$rootDir/scripts/android.gradle")
7-
86
android {
97
namespace = "io.getstream.chat.android.metrics"
108
buildTypes {

scripts/android.gradle

Lines changed: 0 additions & 41 deletions
This file was deleted.

settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import java.util.Properties
22

33
pluginManagement {
44
repositories {
5+
mavenLocal()
56
// fetch plugins from google maven (https://maven.google.com)
67
google {
78
content {

stream-chat-android-ai-assistant/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import io.getstream.chat.android.Configuration
22
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
33

44
plugins {
5-
alias(libs.plugins.android.library)
5+
alias(libs.plugins.stream.android.library)
66
alias(libs.plugins.kotlin.android)
77
alias(libs.plugins.kotlin.compose)
88
}
@@ -14,7 +14,6 @@ rootProject.extra.apply {
1414
}
1515

1616
apply(from = "$rootDir/scripts/publish-module.gradle")
17-
apply(from = "$rootDir/scripts/android.gradle")
1817
apply(from = "$rootDir/scripts/detekt-compose.gradle")
1918

2019
android {

stream-chat-android-benchmark/build.gradle.kts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,16 @@
1-
import io.getstream.chat.android.Configuration
2-
31
plugins {
42
alias(libs.plugins.android.test)
53
alias(libs.plugins.kotlin.android)
64
alias(libs.plugins.androidx.baseline.profile)
75
}
86

9-
apply {
10-
from("$rootDir/scripts/android.gradle")
11-
}
12-
137
android {
148
namespace = "io.getstream.chat.android.benchmark"
15-
compileSdk = Configuration.compileSdk
9+
compileSdk = libs.versions.compileSdk.get().toInt()
1610

1711
defaultConfig {
1812
minSdk = 24
19-
targetSdk = Configuration.targetSdk
13+
targetSdk = libs.versions.targetSdk.get().toInt()
2014
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
2115
testInstrumentationRunnerArguments["androidx.benchmark.suppressErrors"] = "EMULATOR"
2216
buildConfigField("String", "STREAM_CHAT_VERSION", "\"$version\"")

stream-chat-android-client-test/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
22

33
plugins {
4-
alias(libs.plugins.android.library)
4+
alias(libs.plugins.stream.android.library)
55
alias(libs.plugins.kotlin.android)
66
}
77

8-
apply(from = "$rootDir/scripts/android.gradle")
98
apply(from = "$rootDir/scripts/detekt-test.gradle")
109

1110
tasks.withType<KotlinCompile>().configureEach {

stream-chat-android-client/build.gradle.kts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
33
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
44

55
plugins {
6-
alias(libs.plugins.android.library)
6+
alias(libs.plugins.stream.android.library)
77
alias(libs.plugins.kotlin.android)
88
alias(libs.plugins.ksp)
99
alias(libs.plugins.android.junit5)
@@ -17,7 +17,6 @@ rootProject.extra.apply {
1717
}
1818

1919
apply(from = "$rootDir/scripts/publish-module.gradle")
20-
apply(from = "$rootDir/scripts/android.gradle")
2120

2221
android {
2322
namespace = "io.getstream.chat.android.client"

0 commit comments

Comments
 (0)