From 3b4f4228e515a3ce79ed699314c16472f068b527 Mon Sep 17 00:00:00 2001 From: lucapette Date: Fri, 31 Jan 2025 09:52:48 +0100 Subject: [PATCH] build: update all the things Also trying to remove as many build warnings as possible in the process --- buildSrc/build.gradle.kts | 4 +- .../typestream.kotlin-conventions.gradle.kts | 42 ++++++++++--------- .../kotlin/typestream.version-info.gradle.kts | 8 ++-- settings.gradle.kts | 4 +- stub/build.gradle.kts | 9 ++-- 5 files changed, 36 insertions(+), 31 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 6693648..338923f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,8 +8,8 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24") - implementation("org.jetbrains.kotlin:kotlin-serialization:1.9.24") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0") + implementation("org.jetbrains.kotlin:kotlin-serialization:2.1.0") implementation("com.adarshr:gradle-test-logger-plugin:4.0.0") implementation("org.jetbrains.kotlinx:kover:0.6.1") } diff --git a/buildSrc/src/main/kotlin/typestream.kotlin-conventions.gradle.kts b/buildSrc/src/main/kotlin/typestream.kotlin-conventions.gradle.kts index 729b37a..ee7eab4 100644 --- a/buildSrc/src/main/kotlin/typestream.kotlin-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/typestream.kotlin-conventions.gradle.kts @@ -1,5 +1,4 @@ import com.adarshr.gradle.testlogger.theme.ThemeType -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("jvm") @@ -15,40 +14,45 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.24") - implementation("org.jetbrains.kotlin:kotlin-reflect:1.9.24") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.5.0") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.0") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.6.3") + implementation("org.jetbrains.kotlin:kotlin-stdlib:2.1.0") + implementation("org.jetbrains.kotlin:kotlin-reflect:2.1.0") + implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.1") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0") - implementation("io.github.oshai:kotlin-logging-jvm:5.1.0") + implementation("io.github.oshai:kotlin-logging-jvm:7.0.3") testImplementation(kotlin("test")) - testImplementation("org.assertj:assertj-core:3.24.2") - testImplementation("org.junit.jupiter:junit-jupiter:5.10.1") + testImplementation("org.assertj:assertj-core:3.27.3") + testImplementation("org.junit.jupiter:junit-jupiter:5.11.4") testRuntimeOnly("org.junit.platform:junit-platform-launcher") testImplementation("nz.lae.stacksrc:stacksrc-junit5:0.6.0") - testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3") - testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.7.3") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.1") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test-jvm:1.10.1") } tasks.test { useJUnitPlatform() systemProperty("junit.jupiter.extensions.autodetection.enabled", true) + // see https://github.com/mockito/mockito/issues/3111#issuecomment-2362647742 + jvmArgs(listOf("-XX:+EnableDynamicAgentLoading", "-Xshare:off")) } -tasks.withType { - kotlinOptions { - freeCompilerArgs = listOf("-Xjsr305=strict") - jvmTarget = "17" +kotlin { + jvmToolchain(21) + + target { + compilerOptions { + freeCompilerArgs = listOf("-Xjsr305=strict") + } } } java { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } testlogger { diff --git a/buildSrc/src/main/kotlin/typestream.version-info.gradle.kts b/buildSrc/src/main/kotlin/typestream.version-info.gradle.kts index efa621d..3358b53 100644 --- a/buildSrc/src/main/kotlin/typestream.version-info.gradle.kts +++ b/buildSrc/src/main/kotlin/typestream.version-info.gradle.kts @@ -1,4 +1,3 @@ -import java.io.ByteArrayOutputStream import java.util.Properties //TODO It would be nice to package the task and the code it depends on in the same place. (e.g. the libs/version-info project) @@ -7,12 +6,11 @@ tasks.register("createProperties") { doLast { val propertiesFile = File("${layout.buildDirectory.get()}/resources/main/version-info.properties") - val stdout = ByteArrayOutputStream() - rootProject.exec { + val gitCommand = providers.exec { + isIgnoreExitValue = true commandLine("git", "rev-parse", "--verify", "--short", "HEAD") - standardOutput = stdout } - val commitHash = stdout.toString().trim() + val commitHash = gitCommand.standardOutput.asText.get().trim() propertiesFile.bufferedWriter().use { writer -> val properties = Properties() diff --git a/settings.gradle.kts b/settings.gradle.kts index 49df45c..a2a0459 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -20,12 +20,12 @@ dependencyResolutionManagement { version("grpcKotlin", "1.3.1") version("kafka", "3.1.0") version("kubernetes-client", "6.9.0") - version("okhttp", "4.11.0") + version("okhttp", "4.12.0") version("mockk", "1.13.9") version("protobuf", "3.24.2") version("rocksdbjni", "6.29.4.1") version("slf4j", "2.0.7") - version("testcontainers", "1.19.0") + version("testcontainers", "1.20.4") library("avro", "org.apache.avro", "avro").versionRef("avro") library("grpc-netty", "io.grpc", "grpc-netty").versionRef("grpc") diff --git a/stub/build.gradle.kts b/stub/build.gradle.kts index e1c09e9..709bbe3 100644 --- a/stub/build.gradle.kts +++ b/stub/build.gradle.kts @@ -33,9 +33,12 @@ sourceSets { main.java.srcDirs("build/generated/source/proto/main/grpckt") } -tasks.withType().all { - kotlinOptions { - freeCompilerArgs = listOf("-opt-in=kotlin.RequiresOptIn") + +kotlin { + target { + compilerOptions { + freeCompilerArgs = listOf("-opt-in=kotlin.RequiresOptIn") + } } }