From e3cb4fba43b43f575e315f8bc2fd2ebf079d5326 Mon Sep 17 00:00:00 2001 From: Wolfgang Mathurin Date: Fri, 8 May 2026 11:32:10 -0700 Subject: [PATCH 1/2] Migrate doc generation from Javadoc to Dokka Replace the raw javadoc invocation in tools/generate_doc.sh with ./gradlew dokkaHtmlMultiModule. Add the Dokka Gradle plugin (1.9.20) to the buildscript classpath, apply it at the root for multi-module aggregation, and to all :libs:* subprojects for per-module docs. Output directory remains doc/ at the repo root. --- build.gradle.kts | 14 ++++++++++++++ tools/generate_doc.sh | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index b18845c278..df5c765377 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,6 +15,7 @@ buildscript { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20") classpath("org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.3.21") classpath("org.jacoco:org.jacoco.core:0.8.14") + classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20") } } @@ -32,3 +33,16 @@ allprojects { } } } + +apply(plugin = "org.jetbrains.dokka") + +subprojects { + if (path.startsWith(":libs:")) { + apply(plugin = "org.jetbrains.dokka") + } +} + +tasks.named("dokkaHtmlMultiModule") { + moduleName.set("SalesforceSDK 14.0 API") + outputDirectory.set(rootDir.resolve("doc")) +} diff --git a/tools/generate_doc.sh b/tools/generate_doc.sh index 9072328541..a998c67359 100755 --- a/tools/generate_doc.sh +++ b/tools/generate_doc.sh @@ -3,5 +3,5 @@ if [ ! -d "external" ] then echo "You must run this tool from the root directory of your repo clone" else - javadoc -d doc -author -version -verbose -use -doctitle "SalesforceSDK 14.0 API" -sourcepath "libs/SalesforceAnalytics/src:libs/SalesforceSDK/src:libs/SmartStore/src:libs/MobileSync/src:libs/SalesforceHybrid/src:libs/SalesforceReact/src" -subpackages com + ./gradlew dokkaHtmlMultiModule fi From 9fb310ea3d12878a0c81ede3ad562af59e4aedc2 Mon Sep 17 00:00:00 2001 From: Wolfgang Mathurin Date: Fri, 15 May 2026 13:23:11 -0700 Subject: [PATCH 2/2] Migrate doc generation from Dokka v1 to v2 with HTML output - Bump dokka-gradle-plugin from 1.9.20 to 2.0.0 - Opt in to Dokka v2 mode via gradle.properties - Replace subprojects{} apply + dokkaHtmlMultiModule task (v1 API) with DokkaExtension DSL + dokka() dependencies (v2 API) - Apply org.jetbrains.dokka to each lib subproject directly so Dokka can resolve their source sets for aggregation - Switch output format from Javadoc to unified Dokka HTML so that doc/index.html is a proper multi-module site (Javadoc format does not support true multi-module aggregation in v2) - Update generate_doc.sh: dokkaHtmlMultiModule -> dokkaGeneratePublicationHtml --- build.gradle.kts | 23 ++++++++++++++++------- gradle.properties | 1 + libs/MobileSync/build.gradle.kts | 1 + libs/SalesforceAnalytics/build.gradle.kts | 1 + libs/SalesforceHybrid/build.gradle.kts | 1 + libs/SalesforceReact/build.gradle.kts | 1 + libs/SalesforceSDK/build.gradle.kts | 1 + libs/SmartStore/build.gradle.kts | 1 + tools/generate_doc.sh | 2 +- 9 files changed, 24 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index df5c765377..90bc0c2dcf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ buildscript { classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:2.3.20") classpath("org.jetbrains.kotlin:compose-compiler-gradle-plugin:2.3.21") classpath("org.jacoco:org.jacoco.core:0.8.14") - classpath("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20") + classpath("org.jetbrains.dokka:dokka-gradle-plugin:2.0.0") } } @@ -36,13 +36,22 @@ allprojects { apply(plugin = "org.jetbrains.dokka") -subprojects { - if (path.startsWith(":libs:")) { - apply(plugin = "org.jetbrains.dokka") +extensions.configure { + dokkaPublications.named("html") { + outputDirectory.set(rootDir.resolve("doc")) } } -tasks.named("dokkaHtmlMultiModule") { - moduleName.set("SalesforceSDK 14.0 API") - outputDirectory.set(rootDir.resolve("doc")) +dependencies { + add("dokka", project(":libs:SalesforceAnalytics")) + add("dokka", project(":libs:SalesforceSDK")) + add("dokka", project(":libs:SmartStore")) + add("dokka", project(":libs:MobileSync")) + add("dokka", project(":libs:SalesforceHybrid")) + add("dokka", project(":libs:SalesforceReact")) +} + +tasks.register("javadocJar") { + from(tasks.named("dokkaGeneratePublicationHtml")) + archiveClassifier.set("javadoc") } diff --git a/gradle.properties b/gradle.properties index 0ec9b7c8ce..2e91dfbc06 100644 --- a/gradle.properties +++ b/gradle.properties @@ -16,3 +16,4 @@ android.r8.optimizedResourceShrinking=false android.builtInKotlin=false # TODO: This should be resolved in a dedicated work item. ECJ20260423 android.newDsl=false +org.jetbrains.dokka.experimental.gradle.pluginMode=V2EnabledWithHelpers diff --git a/libs/MobileSync/build.gradle.kts b/libs/MobileSync/build.gradle.kts index 57d8ff3704..52eaecbb8c 100644 --- a/libs/MobileSync/build.gradle.kts +++ b/libs/MobileSync/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceAnalytics/build.gradle.kts b/libs/SalesforceAnalytics/build.gradle.kts index fae53862ee..8aebaf42ba 100644 --- a/libs/SalesforceAnalytics/build.gradle.kts +++ b/libs/SalesforceAnalytics/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceHybrid/build.gradle.kts b/libs/SalesforceHybrid/build.gradle.kts index ea03bec2cd..e069441398 100644 --- a/libs/SalesforceHybrid/build.gradle.kts +++ b/libs/SalesforceHybrid/build.gradle.kts @@ -9,6 +9,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceReact/build.gradle.kts b/libs/SalesforceReact/build.gradle.kts index 33974572e5..db2e2d820b 100644 --- a/libs/SalesforceReact/build.gradle.kts +++ b/libs/SalesforceReact/build.gradle.kts @@ -18,6 +18,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SalesforceSDK/build.gradle.kts b/libs/SalesforceSDK/build.gradle.kts index 7b5681c287..b664a3d91f 100644 --- a/libs/SalesforceSDK/build.gradle.kts +++ b/libs/SalesforceSDK/build.gradle.kts @@ -10,6 +10,7 @@ plugins { kotlin("plugin.serialization") version "2.3.20" kotlin("plugin.parcelize") kotlin("plugin.compose") + id("org.jetbrains.dokka") } dependencies { diff --git a/libs/SmartStore/build.gradle.kts b/libs/SmartStore/build.gradle.kts index 79e3263d01..7957089060 100644 --- a/libs/SmartStore/build.gradle.kts +++ b/libs/SmartStore/build.gradle.kts @@ -7,6 +7,7 @@ plugins { `kotlin-android` `publish-module` jacoco + id("org.jetbrains.dokka") } dependencies { diff --git a/tools/generate_doc.sh b/tools/generate_doc.sh index a998c67359..6c10e5e3d1 100755 --- a/tools/generate_doc.sh +++ b/tools/generate_doc.sh @@ -3,5 +3,5 @@ if [ ! -d "external" ] then echo "You must run this tool from the root directory of your repo clone" else - ./gradlew dokkaHtmlMultiModule + ./gradlew dokkaGeneratePublicationHtml fi