Skip to content

Commit 1c8a7fe

Browse files
committed
update dependencies: Gradle, Kotlin
- Update dependencies. - Update buildscripts. - Remove unnecessary dependencies. - Fix bug in Tuple.
1 parent 96bde71 commit 1c8a7fe

37 files changed

+851
-711
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ gradle-app.setting
88
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
99
!gradle-wrapper.jar
1010

11+
### Kotlin ###
12+
13+
.kotlin/
14+
1115
### Linux ###
1216
*~
1317

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ idea {
1818
excludeGeneratedGradleDsl(layout)
1919
excludeDirs = excludeDirs + layout.files(
2020
".idea",
21+
".kotlin",
22+
"buildSrc/.kotlin",
2123
"gradle/kotlin-js-store",
2224
"gradle/wrapper",
2325
"site/.docusaurus",

buildSrc/src/main/kotlin/buildsrc/config/gradle.kt

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,3 @@ fun ProviderFactory.credentialsAction(
4343
password = pass
4444
}
4545
}
46-
47-
48-
/** Logic from [KotlinJvmTarget.withJava] */
49-
fun Project.isKotlinMultiplatformJavaEnabled(): Boolean {
50-
val multiplatformExtension: KotlinMultiplatformExtension? =
51-
extensions.findByType(KotlinMultiplatformExtension::class)
52-
53-
return multiplatformExtension?.targets
54-
?.any { it is KotlinJvmTarget && it.withJavaEnabled }
55-
?: false
56-
}

buildSrc/src/main/kotlin/buildsrc/config/kmm.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package buildsrc.config
22

3-
import org.gradle.api.GradleException
43
import org.gradle.api.Project
54
import org.gradle.kotlin.dsl.findByType
6-
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
7-
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTargetWithHostTests
85
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnRootExtension
96

107

buildSrc/src/main/kotlin/buildsrc/convention/knit-tests.gradle.kts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
package buildsrc.convention
22

3-
import buildsrc.config.knitDocsAttributes
4-
import buildsrc.config.asConsumer
5-
import org.gradle.kotlin.dsl.withType
63
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
74

85
plugins {

buildSrc/src/main/kotlin/buildsrc/convention/kotlin-jvm.gradle.kts

Lines changed: 20 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,42 @@
11
package buildsrc.convention
22

3-
import org.gradle.kotlin.dsl.kotlin
43
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
5-
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion
6-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
4+
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension
5+
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8
76

87
plugins {
98
id("buildsrc.convention.base")
109
kotlin("jvm")
1110
`java-library`
11+
id("io.kotest")
1212
}
1313

14-
dependencies {
15-
// versions provided by versions-platform subproject
16-
testImplementation("io.kotest:kotest-runner-junit5")
17-
testImplementation("io.kotest:kotest-assertions-core")
18-
testImplementation("io.kotest:kotest-property")
19-
testImplementation("io.kotest:kotest-framework-datatest")
20-
}
21-
22-
kotlin {
23-
jvmToolchain(11)
24-
}
25-
26-
java {
27-
withJavadocJar()
28-
withSourcesJar()
29-
}
30-
31-
tasks.withType<KotlinCompile>().configureEach {
14+
// IJ still doesn't support script plugins???
15+
extensions.configure<KotlinJvmProjectExtension> {
16+
//kotlin {
17+
jvmToolchain(21)
3218
compilerOptions {
19+
languageVersion = KOTLIN_1_8
20+
apiVersion = KOTLIN_1_8
3321
jvmTarget = JvmTarget.JVM_11
34-
apiVersion = KotlinVersion.KOTLIN_1_7
35-
languageVersion = KotlinVersion.KOTLIN_1_7
36-
22+
freeCompilerArgs.add(jvmTarget.map { target ->
23+
"-Xjdk-release=${target.target}"
24+
})
3725
freeCompilerArgs.addAll(
3826
"-opt-in=kotlin.ExperimentalStdlibApi",
3927
"-opt-in=kotlin.time.ExperimentalTime",
4028
)
4129
}
4230
}
4331

32+
java {
33+
withJavadocJar()
34+
withSourcesJar()
35+
}
36+
tasks.withType<JavaCompile>().configureEach {
37+
targetCompatibility = "11"
38+
}
39+
4440
tasks.compileTestKotlin {
4541
compilerOptions {
4642
freeCompilerArgs.addAll(
Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,58 @@
11
package buildsrc.convention
22

33
import buildsrc.config.relocateKotlinJsStore
4+
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
45
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
5-
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
6+
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_8
7+
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
68

79

810
plugins {
911
id("buildsrc.convention.base")
1012
kotlin("multiplatform")
13+
id("io.kotest")
14+
id("com.google.devtools.ksp")
1115
}
1216

1317

1418
relocateKotlinJsStore()
1519

1620

17-
kotlin {
18-
js(IR) {
21+
// IJ still doesn't support script plugins???
22+
extensions.configure<KotlinMultiplatformExtension> {
23+
//kotlin {
24+
js {
1925
browser()
2026
nodejs()
2127
}
2228

23-
jvmToolchain(11)
24-
jvm {
25-
withJava()
29+
jvmToolchain(21)
30+
31+
compilerOptions {
32+
languageVersion = KOTLIN_1_8
33+
apiVersion = KOTLIN_1_8
2634
}
2735

28-
targets.configureEach {
29-
compilations.configureEach {
30-
kotlinOptions {
31-
languageVersion = "1.8"
32-
apiVersion = "1.8"
33-
}
36+
jvm {
37+
compilerOptions {
38+
jvmTarget = JvmTarget.JVM_11
39+
freeCompilerArgs.add(jvmTarget.map { target ->
40+
"-Xjdk-release=${target.target}"
41+
})
3442
}
3543
}
44+
}
3645

37-
targets.withType<KotlinJvmTarget> {
38-
compilations.configureEach {
39-
kotlinOptions {
40-
jvmTarget = "11"
41-
}
42-
}
43-
testRuns.configureEach {
44-
executionTask.configure {
45-
useJUnitPlatform()
46-
}
47-
}
46+
tasks.withType<KotlinJvmCompile>().configureEach {
47+
compilerOptions {
48+
jvmTarget = JvmTarget.JVM_11
4849
}
4950
}
51+
52+
tasks.withType<JavaCompile>().configureEach {
53+
targetCompatibility = "11"
54+
}
55+
56+
tasks.withType<Test>().configureEach {
57+
useJUnitPlatform()
58+
}

buildSrc/src/main/kotlin/buildsrc/convention/maven-publish.gradle.kts

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package buildsrc.convention
22

33
import buildsrc.config.credentialsAction
4-
import buildsrc.config.isKotlinMultiplatformJavaEnabled
5-
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
6-
74

85
plugins {
96
`maven-publish`
@@ -67,7 +64,7 @@ afterEvaluate {
6764

6865
//region Javadoc JAR stub
6966
// use creating, not registering, because the signing plugin doesn't accept task providers
70-
val javadocJarStub by tasks.creating(Jar::class) {
67+
val javadocJarStub by tasks.registering(Jar::class) {
7168
group = JavaBasePlugin.DOCUMENTATION_GROUP
7269
description = "Stub javadoc.jar artifact (required by Maven Central)"
7370
archiveClassifier.set("javadoc")
@@ -82,7 +79,7 @@ publishing {
8279
name = "MavenInternal"
8380
}
8481

85-
if (sonatypeRepositoryCredentials.isPresent()) {
82+
if (sonatypeRepositoryCredentials.isPresent) {
8683
maven(sonatypeRepositoryReleaseUrl) {
8784
name = "SonatypeRelease"
8885
credentials(sonatypeRepositoryCredentials.get())
@@ -118,26 +115,6 @@ publishing {
118115
}
119116
}
120117

121-
122-
plugins.withType<KotlinMultiplatformPlugin>().configureEach {
123-
publishing.publications.withType<MavenPublication>().configureEach {
124-
//artifact(javadocJarStub)
125-
}
126-
}
127-
128-
129-
plugins.withType<JavaPlugin>().configureEach {
130-
afterEvaluate {
131-
if (!isKotlinMultiplatformJavaEnabled()) {
132-
publishing.publications.create<MavenPublication>("mavenJava") {
133-
from(components["java"])
134-
artifact(tasks["sourcesJar"])
135-
}
136-
}
137-
}
138-
}
139-
140-
141118
plugins.withType<JavaPlatformPlugin>().configureEach {
142119
// val javadocJarStub = javadocStubTask()
143120
publishing.publications.create<MavenPublication>("mavenJavaPlatform") {

docs/code/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ dependencies {
2222
testFixturesImplementation(libs.kotlinProcess)
2323
testFixturesImplementation(libs.kotest.frameworkEngine)
2424
testFixturesImplementation(libs.kotest.assertionsCore)
25+
26+
testImplementation("io.kotest:kotest-runner-junit5")
27+
testImplementation("io.kotest:kotest-assertions-core")
28+
testImplementation("io.kotest:kotest-property")
2529
}
2630

2731
kotlin {

docs/code/knit-test.ftl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class ${test.name} : FunSpec({
1919
<#--<#assign method = test["mode.${case.param}"]!"custom">-->
2020
<#list cases as case>
2121
context("${case.name}") {
22-
val caseName = testCase.name.testName
22+
val caseName = testCase.name.name
2323

2424
val actual = captureOutput(caseName) {
2525
${case.knit.package}.${case.knit.name}.main()

0 commit comments

Comments
 (0)