From a66769bfd84b2b62e6ccd52e5ea363100c2160b4 Mon Sep 17 00:00:00 2001 From: slinkydeveloper Date: Wed, 17 Jun 2026 15:31:03 +0200 Subject: [PATCH] Bump Kotlin and ksp to 2.3.0 Bump Dokka to 2.2 Bump openapi generator to 7.23.0 --- .github/workflows/release-docs.yml | 4 ++-- .github/workflows/tests.yml | 2 +- CLAUDE.md | 2 +- build.gradle.kts | 34 ++++++++++-------------------- buildSrc/build.gradle.kts | 4 ++-- gradle.properties | 3 +++ gradle/libs.versions.toml | 6 +++--- sdk-common/build.gradle.kts | 4 ++-- sdk-core/build.gradle.kts | 4 ++-- 9 files changed, 27 insertions(+), 36 deletions(-) diff --git a/.github/workflows/release-docs.yml b/.github/workflows/release-docs.yml index b6ebdc5e9..c492fadb0 100644 --- a/.github/workflows/release-docs.yml +++ b/.github/workflows/release-docs.yml @@ -35,10 +35,10 @@ jobs: - name: Build Javadocs run: gradle :sdk-aggregated-javadocs:javadoc - name: Build Kotlin docs - run: gradle :dokkaHtmlMultiModule + run: gradle :dokkaGenerate - name: Move stuff around - run: mkdir _site && mv ./sdk-aggregated-javadocs/build/docs/javadoc _site/javadocs && mv ./build/dokka/htmlMultiModule _site/ktdocs + run: mkdir _site && mv ./sdk-aggregated-javadocs/build/docs/javadoc _site/javadocs && mv ./build/dokka/html _site/ktdocs - name: Upload artifact uses: actions/upload-pages-artifact@v3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5fdaeb1a1..6035a2fb7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,7 +58,7 @@ jobs: - name: Build Javadocs run: gradle :sdk-aggregated-javadocs:javadoc - name: Build Kotlin docs - run: gradle :dokkaHtmlMultiModule + run: gradle :dokkaGenerate event_file: name: "Event File" diff --git a/CLAUDE.md b/CLAUDE.md index 391e60237..1967dcf69 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -20,7 +20,7 @@ This is the **Restate Java/Kotlin SDK** (`dev.restate`), a polyglot JVM SDK for ./gradlew spotlessApply # Auto-format all code ./gradlew spotlessCheck # Check formatting (runs in CI) ./gradlew :sdk-aggregated-javadocs:javadoc # Generate Java docs -./gradlew :dokkaHtmlMultiModule # Generate Kotlin docs +./gradlew :dokkaGenerate # Generate aggregated Kotlin docs (Dokka Gradle plugin v2) ``` ### Before Submitting Changes diff --git a/build.gradle.kts b/build.gradle.kts index 6dd8587c7..9bca0b7f4 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -9,23 +9,6 @@ plugins { id(libs.plugins.spotless.get().pluginId) apply false } -// Dokka is bringing in jackson unshaded, and it's messing up other plugins, so we override those -// here! -buildscript { - dependencies { - classpath("com.fasterxml.jackson.core:jackson-core:2.17.1") - classpath("com.fasterxml.jackson.core:jackson-databind:2.17.1") - classpath("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.17.1") - classpath("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.17.1") - classpath("com.fasterxml.jackson.module:jackson-module-kotlin:2.17.1") - classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20") { - exclude("com.fasterxml.jackson") - exclude("com.fasterxml.jackson.dataformat") - exclude("com.fasterxml.jackson.module") - } - } -} - val restateVersion = libs.versions.restate.get() allprojects { @@ -72,10 +55,13 @@ allprojects { } } -// Dokka configuration -subprojects - .filter { - !setOf( +// Dokka configuration (Dokka Gradle plugin v2). The root project is the aggregator: each +// documented module applies the Dokka plugin and is declared as a `dokka(project(...))` +// dependency, then `./gradlew :dokkaGenerate` produces the aggregated HTML under build/dokka/html. +val dokkaDocumentedProjects = + subprojects.filter { + it.name !in + setOf( "sdk-api", "sdk-api-gen", "sdk-fake-api", @@ -84,9 +70,11 @@ subprojects "admin-client", "test-services", ) - .contains(it.name) } - .forEach { p -> p.plugins.apply("org.jetbrains.dokka") } + +dokkaDocumentedProjects.forEach { p -> p.plugins.apply("org.jetbrains.dokka") } + +dependencies { dokkaDocumentedProjects.forEach { add("dokka", project(it.path)) } } nexusPublishing { repositories { diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index c7601701e..296ff5978 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,7 +9,7 @@ repositories { dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.2.10") - implementation("org.jetbrains.kotlin:kotlin-serialization:2.2.10") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.0") + implementation("org.jetbrains.kotlin:kotlin-serialization:2.3.0") implementation("com.diffplug.spotless:spotless-plugin-gradle:8.2.0") } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 2d2f8d815..3d0d3b40e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ +# Dokka Gradle plugin v2 (default since 2.1.0); set explicitly to opt out of the migration warning. +org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled + org.gradle.jvmargs=--add-exports jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED \ --add-exports jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED \ diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c75008f6b..489b82bfa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -246,11 +246,11 @@ [plugins] aggregate-javadoc = 'io.freefair.aggregate-javadoc:8.14' dependency-license-report = 'com.github.jk1.dependency-license-report:2.9' - dokka = 'org.jetbrains.dokka:1.9.20' + dokka = 'org.jetbrains.dokka:2.2.0' jib = 'com.google.cloud.tools.jib:3.4.5' jsonschema2pojo = 'org.jsonschema2pojo:1.2.2' nexus-publish = 'io.github.gradle-nexus.publish-plugin:1.3.0' - openapi-generator = 'org.openapi.generator:7.17.0' + openapi-generator = 'org.openapi.generator:7.23.0' protobuf = 'com.google.protobuf:0.9.4' shadow = 'com.gradleup.shadow:9.0.0-beta8' spotless = 'com.diffplug.spotless:7.2.1' @@ -267,7 +267,7 @@ junit = '5.14.1' kotlinx-coroutines = '1.10.2' kotlinx-serialization = '1.9.0' - ksp = '2.2.10-2.0.2' + ksp = '2.3.0' log4j = '2.24.3' micrometer = '1.14.14' micrometer-context-propagation = '1.1.3' diff --git a/sdk-common/build.gradle.kts b/sdk-common/build.gradle.kts index c3a2d45f6..1a878ddc4 100644 --- a/sdk-common/build.gradle.kts +++ b/sdk-common/build.gradle.kts @@ -1,4 +1,4 @@ -import org.jetbrains.dokka.gradle.AbstractDokkaTask +import org.jetbrains.dokka.gradle.tasks.DokkaGenerateTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -87,5 +87,5 @@ tasks { withType().configureEach { dependsOn(generateVersionClass) } withType().configureEach { dependsOn(generateVersionClass) } withType().configureEach { dependsOn(generateVersionClass) } - withType().configureEach { dependsOn(generateVersionClass) } + withType().configureEach { dependsOn(generateVersionClass) } } diff --git a/sdk-core/build.gradle.kts b/sdk-core/build.gradle.kts index 87ce62e49..02e5cd73d 100644 --- a/sdk-core/build.gradle.kts +++ b/sdk-core/build.gradle.kts @@ -1,5 +1,5 @@ import org.gradle.kotlin.dsl.withType -import org.jetbrains.dokka.gradle.AbstractDokkaTask +import org.jetbrains.dokka.gradle.tasks.DokkaGenerateTask import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { @@ -131,7 +131,7 @@ tasks { withType().configureEach { dependsOn(generateJsonSchema2Pojo, generateProto) } - withType().configureEach { dependsOn(generateJsonSchema2Pojo, generateProto) } + withType().configureEach { dependsOn(generateJsonSchema2Pojo, generateProto) } getByName("jar") { enabled = false