From 02ef952aaaf9aaf7b4c0a4da7ca37d774c51268b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Reynard?= Date: Fri, 11 Apr 2025 17:06:36 +0200 Subject: [PATCH] Upgrades - kotlin upgrade to 2.0.21 - github actions java-version set to 23 - Spring boot 3.4.1 to 3.4.4 - kover version 0.76 to 0.9.1 - java compatibility set to 21 - spring oauth from 6.4.2 to 6.4.4 - redis om spring from 0.9.1 to 0.9.10 - detekt from 1.23.7 to 1.23.8 - junit from 5.10.0 to 5.12.1 - remove ai.djl:api constraints on redis-om-spring dependency --- .github/workflows/build_test.yml | 4 +-- .github/workflows/detekt.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/publish.yml | 2 +- build.gradle.kts | 60 +++++++++++++++++++------------- 5 files changed, 41 insertions(+), 29 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 2f628721..6dfe926f 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -21,7 +21,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '21' + java-version: '23' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -88,7 +88,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '21' + java-version: '23' - name: Setup Gradle if: ${{ endsWith(steps.previoustag.outputs.tag, '-SNAPSHOT') }} diff --git a/.github/workflows/detekt.yml b/.github/workflows/detekt.yml index c7627833..d5168947 100644 --- a/.github/workflows/detekt.yml +++ b/.github/workflows/detekt.yml @@ -28,7 +28,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '21' + java-version: '23' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index c7f4f2bc..af23a5fe 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -24,7 +24,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '21' + java-version: '23' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index c98a9e56..3272b38b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,7 +21,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: 'temurin' - java-version: '21' + java-version: '23' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 diff --git a/build.gradle.kts b/build.gradle.kts index c9617b8b..7ab297e2 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,16 +2,17 @@ // Licensed under the MIT license. import com.diffplug.gradle.spotless.SpotlessExtension import io.gitlab.arturbosch.detekt.Detekt +import kotlinx.kover.gradle.plugin.dsl.KoverProjectExtension import org.gradle.kotlin.dsl.implementation plugins { - val kotlinVersion = "1.9.23" + val kotlinVersion = "2.0.21" kotlin("jvm") version kotlinVersion id("com.diffplug.spotless") version "7.0.2" - id("org.springframework.boot") version "3.4.1" apply false + id("org.springframework.boot") version "3.4.4" apply false id("io.gitlab.arturbosch.detekt") version "1.23.8" id("pl.allegro.tech.build.axion-release") version "1.18.18" - id("org.jetbrains.kotlinx.kover") version "0.7.6" + id("org.jetbrains.kotlinx.kover") version "0.9.1" id("project-report") `maven-publish` // Apply the java-library plugin for API and implementation separation. @@ -28,7 +29,11 @@ project.version = scmVersion.version val kotlinJvmTarget = 21 -java { toolchain { languageVersion.set(JavaLanguageVersion.of(kotlinJvmTarget)) } } +java { + targetCompatibility = JavaVersion.VERSION_21 + sourceCompatibility = JavaVersion.VERSION_21 + toolchain { languageVersion.set(JavaLanguageVersion.of(kotlinJvmTarget)) } +} publishing { repositories { @@ -155,28 +160,30 @@ val springWebVersion = "6.2.1" val springBootVersion = "3.4.1" // Implementation -val swaggerParserVersion = "2.1.24" +val swaggerParserVersion = "2.1.25" val hashidsVersion = "1.0.3" val springOauthAutoConfigureVersion = "2.6.8" val springSecurityJwtVersion = "1.1.1.RELEASE" val springDocVersion = "2.8.6" -val springOauthVersion = "6.4.2" +val springOauthVersion = "6.4.4" val servletApiVersion = "6.1.0" val oktaSpringBootVersion = "3.0.7" val tikaVersion = "3.1.0" -val redisOMVersion = "0.9.1" -val kotlinCoroutinesCoreVersion = "1.8.1" +val redisOMVersion = "0.9.10" +val kotlinCoroutinesCoreVersion = "1.10.2" // Checks -val detektVersion = "1.23.7" +val detektVersion = "1.23.8" // Tests -val jUnitBomVersion = "5.10.0" +val jUnitBomVersion = "5.12.1" val mockkVersion = "1.13.17" -val awaitilityKVersion = "4.2.2" +val awaitilityKVersion = "4.3.0" val testcontainersRedis = "1.6.4" dependencies { + // https://youtrack.jetbrains.com/issue/KT-71057/POM-file-unusable-after-upgrading-to-2.0.20-from-2.0.10 + implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.0.21")) implementation(platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)) detekt("io.gitlab.arturbosch.detekt:detekt-cli:$detektVersion") @@ -213,7 +220,7 @@ dependencies { } implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:${springDocVersion}") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.3") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonVersion") implementation("jakarta.servlet:jakarta.servlet-api:${servletApiVersion}") implementation("com.okta.spring:okta-spring-boot-starter:${oktaSpringBootVersion}") @@ -224,9 +231,7 @@ dependencies { implementation("org.apache.tika:tika-core:${tikaVersion}") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinCoroutinesCoreVersion") - implementation("com.redis.om:redis-om-spring:${redisOMVersion}") { - constraints { implementation("ai.djl:api:0.28.0") } - } + implementation("com.redis.om:redis-om-spring:${redisOMVersion}") implementation("com.redis.testcontainers:testcontainers-redis-junit:$testcontainersRedis") implementation("org.springframework.boot:spring-boot-starter-test") @@ -246,16 +251,23 @@ dependencies { annotationProcessor("org.springframework.boot:spring-boot-configuration-processor") } -extensions.configure { - defaults { - // reports configs for XML, HTML, verify reports +extensions.configure("kover") { + reports { + filters { + includes { + packages("com.cosmotech.api") + classes("com.cosmotech.api.id.*") + classes("com.cosmotech.api.rbac.*") + classes("com.cosmotech.utils.*") + } + } } - filters { - includes { - packages("com.cosmotech.api") - classes("com.cosmotech.api.id.*") - classes("com.cosmotech.api.rbac.*") - classes("com.cosmotech.utils.*") +} + +kover { + reports { + total { + // reports configs for XML, HTML, verify reports } } }