Skip to content

Commit 006abfc

Browse files
authored
KTOR-8472 Flatten Gradle project hierarchy (#4836)
* Introduce a DSL for project hierarchy declaration * Apply ktorbuild.compatibility to subprojects * Fix project paths in dependencies
1 parent 5b0d403 commit 006abfc

File tree

105 files changed

+574
-502
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

105 files changed

+574
-502
lines changed

build-logic/src/main/kotlin/ktorbuild.compatibility.gradle.kts

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -7,51 +7,8 @@ plugins {
77
}
88

99
apiValidation {
10-
val excludeList = setOf(
11-
"ktor",
12-
"ktor-client-test-base",
13-
"ktor-client-tests",
14-
"ktor-client-js",
15-
"ktor-client-content-negotiation-tests",
16-
"ktor-serialization-kotlinx-tests",
17-
"ktor-serialization-tests",
18-
"ktor-client",
19-
"ktor-client-plugins",
20-
"ktor-server-test-suites",
21-
"ktor-server-test-base",
22-
"ktor-test-base",
23-
)
24-
25-
val projects = mutableSetOf<Project>()
26-
val queue = arrayDequeOf(
27-
project(":ktor-client"),
28-
project(":ktor-http"),
29-
project(":ktor-network"),
30-
project(":ktor-utils"),
31-
project(":ktor-io"),
32-
project(":ktor-server"),
33-
project(":ktor-server:ktor-server-plugins"),
34-
project(":ktor-shared"),
35-
)
36-
37-
while (queue.isNotEmpty()) {
38-
val currentProject = queue.removeLast()
39-
if (projects.add(currentProject)) {
40-
queue.addAll(currentProject.childProjects.values)
41-
}
42-
}
43-
44-
val projectNames = projects.map { it.name }.toSet()
45-
46-
ignoredProjects.addAll(excludeList)
47-
ignoredProjects.addAll(
48-
project.allprojects.map { it.name }.filter { !projectNames.contains(it) }
49-
)
50-
5110
@OptIn(kotlinx.validation.ExperimentalBCVApi::class)
5211
klib {
5312
enabled = true
5413
}
5514
}
56-
57-
fun <T> arrayDequeOf(vararg values: T): ArrayDeque<T> = ArrayDeque(values.asList())

build-logic/src/main/kotlin/ktorbuild.project.client-plugin.gradle.kts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,25 @@ plugins {
1111
kotlin {
1212
sourceSets {
1313
commonMain.dependencies {
14-
api(project(":ktor-client:ktor-client-core"))
14+
api(project(":ktor-client-core"))
1515
}
1616
commonTest.dependencies {
17-
implementation(project(":ktor-client:ktor-client-tests"))
17+
implementation(project(":ktor-client-tests"))
1818
}
1919

2020
if (ktorBuild.targets.hasJvm) {
2121
jvmTest.dependencies {
22-
runtimeOnly(project(":ktor-client:ktor-client-okhttp"))
23-
runtimeOnly(project(":ktor-client:ktor-client-apache"))
24-
runtimeOnly(project(":ktor-client:ktor-client-cio"))
25-
runtimeOnly(project(":ktor-client:ktor-client-android"))
26-
runtimeOnly(project(":ktor-client:ktor-client-java"))
22+
runtimeOnly(project(":ktor-client-okhttp"))
23+
runtimeOnly(project(":ktor-client-apache"))
24+
runtimeOnly(project(":ktor-client-cio"))
25+
runtimeOnly(project(":ktor-client-android"))
26+
runtimeOnly(project(":ktor-client-java"))
2727
}
2828
}
2929

3030
if (ktorBuild.targets.hasJs) {
3131
jsTest.dependencies {
32-
runtimeOnly(project(":ktor-client:ktor-client-js"))
32+
runtimeOnly(project(":ktor-client-js"))
3333
}
3434
}
3535
}

build-logic/src/main/kotlin/ktorbuild.project.library.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ plugins {
88
id("ktorbuild.kmp")
99
id("ktorbuild.dokka")
1010
id("ktorbuild.publish")
11+
id("ktorbuild.compatibility")
1112
}
1213

1314
addProjectTag(ProjectTag.Library)

build-logic/src/main/kotlin/ktorbuild.project.server-plugin.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ plugins {
99
kotlin {
1010
sourceSets {
1111
commonMain.dependencies {
12-
api(project(":ktor-server:ktor-server-core"))
12+
api(project(":ktor-server-core"))
1313
}
1414
commonTest.dependencies {
15-
implementation(project(":ktor-server:ktor-server-test-base"))
15+
implementation(project(":ktor-server-test-base"))
1616
}
1717
}
1818
}

build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
plugins {
66
id("ktorbuild.doctor")
7-
id("ktorbuild.compatibility")
87
id("ktorbuild.publish.verifier")
98
}
109

ktor-client/api/ktor-client.api

Whitespace-only changes.

ktor-client/api/ktor-client.klib.api

Whitespace-only changes.

ktor-client/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ plugins {
99
kotlin {
1010
sourceSets {
1111
commonMain.dependencies {
12-
api(project(":ktor-client:ktor-client-core"))
12+
api(project(":ktor-client-core"))
1313
}
1414
}
1515
}

ktor-client/ktor-client-android/build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ plugins {
1212
kotlin {
1313
sourceSets {
1414
jvmMain.dependencies {
15-
api(project(":ktor-client:ktor-client-core"))
15+
api(project(":ktor-client-core"))
1616
}
1717
jvmTest.dependencies {
18-
api(project(":ktor-client:ktor-client-tests"))
19-
api(project(":ktor-network:ktor-network-tls"))
20-
api(project(":ktor-network:ktor-network-tls:ktor-network-tls-certificates"))
18+
api(project(":ktor-client-tests"))
19+
api(project(":ktor-network-tls"))
20+
api(project(":ktor-network-tls-certificates"))
2121
}
2222
}
2323
}

ktor-client/ktor-client-apache/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ plugins {
1212
kotlin {
1313
sourceSets {
1414
jvmMain.dependencies {
15-
api(project(":ktor-client:ktor-client-core"))
15+
api(project(":ktor-client-core"))
1616
api(libs.apache.httpasyncclient)
1717
}
1818
jvmTest.dependencies {
19-
api(project(":ktor-client:ktor-client-tests"))
19+
api(project(":ktor-client-tests"))
2020
}
2121
}
2222
}

0 commit comments

Comments
 (0)