Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to dokka2 #6181

Merged
merged 4 commits into from
Oct 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
#--no-configuration-cache for https://youtrack.jetbrains.com/issue/KT-65879
run: |
./gradlew -p tests ciBuild -i
./gradlew :apollo-kdoc:dokkatooGeneratePublicationHtml --no-build-cache
./gradlew :apollo-kdoc:dokkaGeneratePublicationHtml --no-build-cache
./gradlew ciPublishSnapshot --no-configuration-cache
env:
SONATYPE_NEXUS_PASSWORD: ${{ secrets.SONATYPE_NEXUS_PASSWORD }}
Expand Down
2 changes: 1 addition & 1 deletion build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ dependencies {
implementation(libs.okhttp)

implementation(libs.kotlinx.benchmark)
implementation(libs.dokkatoo)
implementation(libs.dokka)
implementation(libs.apollo.execution.gradle.plugin)

// We add all the plugins to the classpath here so that they are loaded with proper conflict resolution
Expand Down
49 changes: 26 additions & 23 deletions build-logic/src/main/kotlin/Publishing.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,5 @@
import com.android.build.api.dsl.LibraryExtension
import com.android.build.gradle.BaseExtension
import dev.adamko.dokkatoo.DokkatooExtension
import dev.adamko.dokkatoo.dokka.plugins.DokkaHtmlPluginParameters
import dev.adamko.dokkatoo.dokka.plugins.DokkaVersioningPluginParameters
import dev.adamko.dokkatoo.tasks.DokkatooGenerateTask
import kotlinx.coroutines.runBlocking
import net.mbonnin.vespene.lib.NexusStagingClient
import org.gradle.api.Project
Expand All @@ -19,6 +15,10 @@ import org.gradle.api.tasks.TaskProvider
import org.gradle.api.tasks.bundling.Jar
import org.gradle.plugins.signing.Sign
import org.gradle.plugins.signing.SigningExtension
import org.jetbrains.dokka.gradle.DokkaExtension
import org.jetbrains.dokka.gradle.engine.plugins.DokkaHtmlPluginParameters
import org.jetbrains.dokka.gradle.engine.plugins.DokkaVersioningPluginParameters
import org.jetbrains.dokka.gradle.tasks.DokkaGenerateTask
import javax.inject.Inject

fun Project.configurePublishing(isAggregateKdoc: Boolean = false) {
Expand Down Expand Up @@ -47,13 +47,15 @@ fun Project.configurePublishing(isAggregateKdoc: Boolean = false) {
configurePublishingInternal()
}

fun Project.configureDokkaCommon(): DokkatooExtension {
fun Project.configureDokkaCommon(): DokkaExtension {
apply {
plugin("dev.adamko.dokkatoo-html")
plugin("org.jetbrains.dokka")
}
val dokkatoo = extensions.getByType(DokkatooExtension::class.java)
val dokka = extensions.getByType(DokkaExtension::class.java)

dokkatoo.apply {
dokka.apply {
// Workaround for https://github.com/Kotlin/dokka/issues/3798
dokkaEngineVersion.set("1.9.20")
pluginsConfiguration.getByName("html") {
this as DokkaHtmlPluginParameters
customStyleSheets.from(
Expand All @@ -65,32 +67,31 @@ fun Project.configureDokkaCommon(): DokkatooExtension {
}
}

tasks.withType(DokkatooGenerateTask::class.java).configureEach {
workerIsolation.set(dokkatoo.ClassLoaderIsolation())
tasks.withType(DokkaGenerateTask::class.java).configureEach {
workerIsolation.set(dokka.ClassLoaderIsolation())
}

dokkatoo.dokkatooSourceSets.configureEach {
dokka.dokkaSourceSets.configureEach {
includes.from("README.md")
}

// Workaround for https://github.com/adamko-dev/dokkatoo/issues/165
configurations.configureEach {
if (name.lowercase().contains("dokkatooHtmlPublicationPluginClasspathApiOnlyConsumable".lowercase())) {
if (name.lowercase().contains("dokkaHtmlPublicationPluginApiOnlyConsumable~internal".lowercase())) {
attributes {
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, "poison"))
}
}
}

return dokkatoo
return dokka
}

fun Project.configureDokka() {
configureDokkaCommon()
val project = this
val kdocProject = project(":apollo-kdoc")
kdocProject.configurations.all {
if (name == "dokkatoo") {
if (name == "dokka") {
this.dependencies.add(kdocProject.dependencies.project(mapOf("path" to project.path)))
}
}
Expand All @@ -99,20 +100,22 @@ fun Project.configureDokka() {
private class MavenCoordinates(val module: String, val version: String)

fun Project.configureDokkaAggregate() {
val dokkatoo = configureDokkaCommon()
val dokka = configureDokkaCommon()

dependencies.add(
"dokkatooPluginHtml",
dokkatoo.versions.jetbrainsDokka.map { dokkaVersion ->
"dokkaHtmlPlugin",
dokka.dokkaEngineVersion.map { dokkaVersion ->
"org.jetbrains.dokka:all-modules-page-plugin:$dokkaVersion"
}
)
dependencies.add(
"dokkatooPluginHtml",
dokkatoo.versions.jetbrainsDokka.map { dokkaVersion ->
"dokkaHtmlPlugin",
dokka.dokkaEngineVersion.map { dokkaVersion ->
"org.jetbrains.dokka:versioning-plugin:$dokkaVersion"
}
)


val olderVersionsCoordinates = listOf(MavenCoordinates("com.apollographql.apollo3:apollo-kdoc", "3.8.2"))
val kdocVersionTasks = olderVersionsCoordinates.map { coordinate ->
val versionString = coordinate.version.replace(".", "_").replace("-", "_")
Expand Down Expand Up @@ -146,14 +149,14 @@ fun Project.configureDokkaAggregate() {
}
}

dokkatoo.pluginsConfiguration.getByName("versioning") {
dokka.pluginsConfiguration.getByName("versioning") {
this as DokkaVersioningPluginParameters
val currentVersion = findProperty("VERSION_NAME") as String
version.set(currentVersion)
olderVersionsDir.fileProvider(downloadKDocVersions.map { it.outputs.files.singleFile })
}

tasks.withType(DokkatooGenerateTask::class.java).configureEach {
tasks.withType(DokkaGenerateTask::class.java).configureEach {
dependsOn(downloadKDocVersions)
/**
* The Apollo docs website expect the contents to be in a `kdoc` subfolder
Expand Down Expand Up @@ -291,7 +294,7 @@ private fun Project.configurePublishingInternal() {
*/
val kdocWithoutOlder = tasks.register("kdocWithoutOlder", org.gradle.jvm.tasks.Jar::class.java) {
archiveClassifier.set("javadoc")
from(tasks.named("dokkatooGeneratePublicationHtml").map { (it as DokkatooGenerateTask).outputDirectory.get().asFile })
from(tasks.named("dokkaGeneratePublicationHtml").map { (it as DokkaGenerateTask).outputDirectory.get().asFile })
exclude("/older/**")
}

Expand Down
5 changes: 3 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ org.gradle.configuration-cache=true

org.gradle.parallel=true

kotlin.wasm.stability.nowarn=true
dev.adamko.dokkatoo.tasks.logHtmlPublicationLinkEnabled=false
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
org.jetbrains.dokka.gradle.enableLogHtmlPublicationLink=false
2 changes: 1 addition & 1 deletion gradle/libraries.toml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ atomicfu-plugin = { group = "org.jetbrains.kotlinx", name = "atomicfu-gradle-plu
benmanes-versions = { group = "com.github.ben-manes", name = "gradle-versions-plugin", version = "0.33.0" }
compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "compose" }
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
dokkatoo = "dev.adamko.dokkatoo:dokkatoo-plugin:2.1.0"
dokka = "org.jetbrains.dokka:dokka-gradle-plugin:2.0.0-Beta"
dgp = "com.gradle:develocity-gradle-plugin:3.18.1" # // sync with settings.gradle.kts
# Not updating because it fails in apollo-compiler Java tests with
# annotation @org.jetbrains.annotations.Nullable not applicable in this type context
Expand Down
4 changes: 2 additions & 2 deletions libraries/apollo-debug-server/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

import dev.adamko.dokkatoo.tasks.DokkatooGenerateTask
import org.jetbrains.dokka.gradle.tasks.DokkaGenerateTask
import org.jetbrains.kotlin.gradle.dsl.KotlinVersion

plugins {
Expand Down Expand Up @@ -56,7 +56,7 @@ kotlin {
}
}

tasks.withType<DokkatooGenerateTask>().configureEach {
tasks.withType<DokkaGenerateTask>().configureEach {
dependsOn("kspCommonMainKotlinMetadata")
}
tasks.configureEach {
Expand Down
Loading