Track Dokka changes

This commit is contained in:
Jake Wharton
2025-10-20 11:03:05 -04:00
parent c2e71c71b1
commit 001020124c
10 changed files with 47 additions and 54 deletions

View File

@@ -251,12 +251,12 @@ jobs:
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_SECRET_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.GPG_SECRET_PASSPHRASE }}
- run: ./gradlew :dokkaHtmlMultiModule
- run: ./gradlew :dokkaGenerate
- uses: actions/upload-artifact@v4
with:
name: html-docs
path: build/dokka/htmlMultiModule/
path: build/dokka/html/
if-no-files-found: error
- name: Deploy docs to website
@@ -264,6 +264,6 @@ jobs:
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: site
FOLDER: build/dokka/htmlMultiModule/
FOLDER: build/dokka/html/
TARGET_FOLDER: docs/latest/
CLEAN: true

View File

@@ -26,7 +26,7 @@ jobs:
- run: zig build -p src/jvmMain/resources/jni
working-directory: zipline
- run: ./gradlew publishToMavenCentral :dokkaHtmlMultiModule
- run: ./gradlew publishToMavenCentral
if: ${{ github.repository == 'cashapp/zipline' }}
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.SONATYPE_CENTRAL_USERNAME }}
@@ -45,12 +45,14 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: ./gradlew :dokkaGenerate
- name: Deploy docs to website
if: ${{ github.repository == 'cashapp/zipline' }}
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
BRANCH: site
FOLDER: build/dokka/htmlMultiModule/
FOLDER: build/dokka/html/
TARGET_FOLDER: docs/1.x/
CLEAN: true

View File

@@ -1,21 +1,18 @@
import com.android.build.gradle.BaseExtension
import com.diffplug.gradle.spotless.SpotlessExtension
import com.vanniktech.maven.publish.MavenPublishBaseExtension
import java.net.URI
import java.net.URL
import kotlinx.validation.ApiValidationExtension
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent
import org.jetbrains.dokka.DokkaConfiguration.Visibility
import org.jetbrains.dokka.gradle.AbstractDokkaTask
import org.jetbrains.dokka.gradle.DokkaMultiModuleTask
import org.jetbrains.dokka.gradle.DokkaTaskPartial
import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
import java.net.URI
buildscript {
repositories {
@@ -29,7 +26,6 @@ buildscript {
classpath(libs.mavenPublish.gradle.plugin)
classpath(libs.kotlin.gradle.plugin)
classpath(libs.kotlin.serialization)
classpath(libs.dokka.gradle.plugin)
classpath(libs.shadowJar.gradle.plugin)
classpath(libs.cklib.gradle.plugin)
classpath(libs.sqldelight.gradle.plugin)
@@ -41,13 +37,20 @@ buildscript {
plugins {
id("com.github.gmazzo.buildconfig") version "5.7.0" apply false
alias(libs.plugins.spotless) apply false
alias(libs.plugins.dokka)
}
apply(plugin = "org.jetbrains.dokka")
apply(plugin = "com.vanniktech.maven.publish.base")
tasks.named("dokkaHtmlMultiModule", DokkaMultiModuleTask::class.java).configure {
moduleName.set("Zipline")
dependencies {
dokka(projects.zipline)
dokka(projects.ziplineCryptography)
dokka(projects.ziplineLoader)
dokka(projects.ziplineProfiler)
}
dokka {
moduleName = "Zipline"
}
allprojects {
@@ -108,39 +111,27 @@ allprojects {
}
}
tasks.withType<DokkaTaskPartial>().configureEach {
dokkaSourceSets.configureEach {
documentedVisibilities.set(setOf(
Visibility.PUBLIC,
Visibility.PROTECTED
))
reportUndocumented.set(false)
jdkVersion.set(11)
perPackageOption {
matchingRegex.set("app\\.cash\\.zipline\\.internal\\..*")
suppress.set(true)
pluginManager.withPlugin("org.jetbrains.dokka") {
dokka {
dokkaSourceSets.configureEach {
documentedVisibilities = setOf(
VisibilityModifier.Public,
VisibilityModifier.Protected,
)
perPackageOption {
matchingRegex.set("app\\.cash\\.zipline\\.internal\\..*")
suppress.set(true)
}
perPackageOption {
matchingRegex.set("app\\.cash\\.zipline\\.loader\\.internal\\..*")
suppress.set(true)
}
sourceLink {
localDirectory = rootProject.projectDir
remoteUrl = URI("https://github.com/cashapp/zipline/tree/main/")
remoteLineSuffix.set("#L")
}
}
perPackageOption {
matchingRegex.set("app\\.cash\\.zipline\\.loader\\.internal\\..*")
suppress.set(true)
}
sourceLink {
localDirectory.set(rootProject.projectDir)
remoteUrl.set(URL("https://github.com/cashapp/zipline/tree/trunk/"))
remoteLineSuffix.set("#L")
}
}
}
// Workaround for https://github.com/Kotlin/dokka/issues/2977.
// We disable the C Interop IDE metadata task when generating documentation using Dokka.
tasks.withType<AbstractDokkaTask> {
@Suppress("UNCHECKED_CAST")
val taskClass = Class.forName("org.jetbrains.kotlin.gradle.targets.native.internal.CInteropMetadataDependencyTransformationTask") as Class<Task>
parent?.subprojects?.forEach {
dependsOn(it.tasks.withType(taskClass))
}
}

View File

@@ -30,7 +30,6 @@ auto-service-compiler = { module = "dev.zacsweers.autoservice:auto-service-ksp",
auto-service-annotations = { module = "com.google.auto.service:auto-service-annotations", version = "1.1.1" }
binary-compatibility-validator-gradle-plugin = { module = "org.jetbrains.kotlinx.binary-compatibility-validator:org.jetbrains.kotlinx.binary-compatibility-validator.gradle.plugin", version = "0.18.1" }
cklib-gradle-plugin = { module = "co.touchlab:cklib-gradle-plugin", version = "0.3.4" }
dokka-gradle-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version = "2.1.0" }
google-ksp = { module = "com.google.devtools.ksp:symbol-processing-gradle-plugin", version.ref = "ksp" }
jetty-ee10Servlet = { module = "org.eclipse.jetty.ee10:jetty-ee10-servlet", version.ref = "jetty" }
jetty-ee10WebsocketJettyServer = { module = "org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server", version.ref = "jetty" }
@@ -66,3 +65,4 @@ turbine = { module = "app.cash.turbine:turbine", version = "1.2.1" }
[plugins]
spotless = { id = "com.diffplug.spotless", version = "8.0.0" }
zipline-kotlin = { id = "app.cash.zipline.kotlin" }
dokka = { id = "org.jetbrains.dokka", version = "2.1.0" }

View File

@@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.plugin.PLUGIN_CLASSPATH_CONFIGURATION_NAME
plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
id("com.vanniktech.maven.publish.base")
id("binary-compatibility-validator")
}

View File

@@ -6,7 +6,7 @@ plugins {
id("java-gradle-plugin")
kotlin("jvm")
id("com.github.gmazzo.buildconfig")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
id("com.vanniktech.maven.publish.base")
}

View File

@@ -1,6 +1,6 @@
plugins {
kotlin("jvm")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
}
dependencies {

View File

@@ -7,7 +7,7 @@ plugins {
kotlin("multiplatform")
id("com.android.library")
kotlin("plugin.serialization")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
id("com.vanniktech.maven.publish.base")
id("app.cash.sqldelight")
id("binary-compatibility-validator")

View File

@@ -4,7 +4,7 @@ import com.vanniktech.maven.publish.MavenPublishBaseExtension
plugins {
kotlin("multiplatform")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
id("com.vanniktech.maven.publish.base")
id("binary-compatibility-validator")
}

View File

@@ -15,7 +15,7 @@ plugins {
kotlin("multiplatform")
kotlin("plugin.serialization")
id("com.android.library")
id("org.jetbrains.dokka")
alias(libs.plugins.dokka)
id("com.vanniktech.maven.publish.base")
id("co.touchlab.cklib")
id("com.github.gmazzo.buildconfig")