Skip to content
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 gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ clikt = "com.github.ajalt.clikt:clikt:3.5.0"
compat-patrouille = "com.gradleup.compat.patrouille:compat-patrouille-gradle-plugin:0.0.0"
compat-patrouille-at-build-time = "com.gradleup.compat.patrouille:compat-patrouille-gradle-plugin:0.0.1-SNAPSHOT-1915e48aadee473b40b4873db7f8df82057b7c59"
coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.0"
dokkatoo = "dev.adamko.dokkatoo:dokkatoo-plugin:2.3.1"
dokka = "org.jetbrains.dokka:dokka-gradle-plugin:2.1.0-Beta"
google-auth = "com.google.auth:google-auth-library-oauth2-http:1.19.0"
gradle-api = "dev.gradleplugins:gradle-api:8.8"
gratatouille-gradle-plugin = "com.gradleup.gratatouille:com.gradleup.gratatouille.gradle.plugin:0.0.10"
Expand Down
6 changes: 3 additions & 3 deletions librarian-gradle-plugin/api/librarian-gradle-plugin.api
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ public final class com/gradleup/librarian/gradle/Coordinates {
public fun toString ()Ljava/lang/String;
}

public final class com/gradleup/librarian/gradle/DokkatooKt {
public final class com/gradleup/librarian/gradle/DokkaKt {
public static final fun Coordinates (Ljava/lang/String;)Lcom/gradleup/librarian/gradle/Coordinates;
public static final fun configureDokkatoo (Lorg/gradle/api/Project;)V
public static final fun configureDokkatooAggregate (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/util/List;)Lorg/gradle/api/tasks/TaskProvider;
public static final fun configureDokka (Lorg/gradle/api/Project;)V
public static final fun configureDokkaAggregate (Lorg/gradle/api/Project;Ljava/lang/String;Ljava/util/List;)Lorg/gradle/api/tasks/TaskProvider;
}

public final class com/gradleup/librarian/gradle/Gcp {
Expand Down
2 changes: 1 addition & 1 deletion librarian-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ plugins {
Librarian.module(project)

dependencies {
api(libs.dokkatoo)
api(libs.dokka)

implementation(project(":librarian-core"))
implementation(libs.coroutines)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
package com.gradleup.librarian.gradle

import com.gradleup.librarian.gradle.internal.findGradleProperty
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 org.gradle.api.Project
import org.gradle.api.UnknownTaskException
import org.gradle.api.attributes.Usage
import org.gradle.api.internal.file.FileOperations
import org.gradle.api.tasks.Copy
import org.gradle.api.tasks.TaskProvider
import org.gradle.jvm.tasks.Jar
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

class KdocAggregate(
val currentVersion: String,
val olderVersions: List<Coordinates>,
val currentVersion: String,
val olderVersions: List<Coordinates>,
) {
class Builder internal constructor(internal val project: Project) {
var olderVersions: List<Coordinates>? = null
Expand All @@ -25,33 +25,32 @@ class KdocAggregate(
fun fromGradleProperties() {
currentVersion = project.findGradleProperty("librarian.pom.version")
olderVersions = project.findGradleProperty("librarian.kdoc.olderVersions")
?.split(",")
.orEmpty()
.filter {
it.isNotEmpty()
}
.map {
Coordinates(it)
}
?.split(",")
.orEmpty()
.filter {
it.isNotEmpty()
}
.map {
Coordinates(it)
}
}

fun build(): KdocAggregate {
return KdocAggregate(
currentVersion = currentVersion ?: error("Librarian: 'currentVersion' is required."),
olderVersions = olderVersions.orEmpty()
currentVersion = currentVersion ?: error("Librarian: 'currentVersion' is required."),
olderVersions = olderVersions.orEmpty()
)
}
}
}

internal fun Project.configureDokkatooHtml(block: DokkaHtmlPluginParameters.() -> Unit = {}) {
plugins.apply("dev.adamko.dokkatoo-html")
extensions.getByType(DokkatooExtension::class.java).apply {
tasks.withType(DokkatooGenerateTask::class.java).configureEach {
internal fun Project.configureDokkaHtml(block: DokkaHtmlPluginParameters.() -> Unit = {}) {
extensions.getByType(DokkaExtension::class.java).apply {
tasks.withType(DokkaGenerateTask::class.java).configureEach {
it.workerIsolation.set(ClassLoaderIsolation())
}

dokkatooSourceSets.configureEach {
dokkaSourceSets.configureEach {
it.includes.from("README.md")
}
pluginsConfiguration.getByName("html") {
Expand All @@ -60,7 +59,7 @@ internal fun Project.configureDokkatooHtml(block: DokkaHtmlPluginParameters.() -

// Workaround for https://github.com/adamko-dev/dokkatoo/issues/165
configurations.configureEach {
if (it.name.lowercase().contains("dokkatooHtmlPublicationPluginClasspathApiOnlyConsumable".lowercase())) {
if (it.name.lowercase().contains("dokkaHtmlPublicationPluginClasspathApiOnlyConsumable".lowercase())) {
it.attributes {
it.attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage::class.java, "poison"))
}
Expand All @@ -84,31 +83,26 @@ fun Coordinates(coordinates: String): Coordinates {
}
}

internal fun <T> Project.configureDokkatooInternal(block: DokkatooExtension.() -> T): T {
plugins.apply("dev.adamko.dokkatoo-html")
return block(extensions.getByType(DokkatooExtension::class.java))
internal fun <T> Project.configureDokkaInternal(block: DokkaExtension.() -> T): T {
plugins.apply("org.jetbrains.dokka")
return block(extensions.getByType(DokkaExtension::class.java))
}

fun Project.configureDokkatoo() = configureDokkatooInternal {
tasks.withType(DokkatooGenerateTask::class.java).configureEach {
fun Project.configureDokka() = configureDokkaInternal {
tasks.withType(DokkaGenerateTask::class.java).configureEach {
it.workerIsolation.set(ClassLoaderIsolation())
}
}

fun Project.configureDokkatooAggregate(currentVersion: String, olderVersions: List<Coordinates>): TaskProvider<Jar> {
val jar = configureDokkatooInternal {
plugins.apply("dev.adamko.dokkatoo-html")
fun Project.configureDokkaAggregate(currentVersion: String, olderVersions: List<Coordinates>): TaskProvider<Jar> {
val jar = configureDokkaInternal {
dependencies.add(
"dokkatooPluginHtml",
versions.jetbrainsDokka.map { dokkaVersion ->
"org.jetbrains.dokka:all-modules-page-plugin:$dokkaVersion"
}
"dokkaPluginHtml",
"org.jetbrains.dokka:versioning-plugin:${this.dokkaEngineVersion}"
)
dependencies.add(
"dokkatooPluginHtml",
versions.jetbrainsDokka.map { dokkaVersion ->
"org.jetbrains.dokka:versioning-plugin:$dokkaVersion"
}
"dokkaPluginHtml",
"org.jetbrains.dokka:all-modules-page-plugin:${this.dokkaEngineVersion}"
)

val kdocVersionTasks = olderVersions.map { version ->
Expand Down Expand Up @@ -144,7 +138,7 @@ fun Project.configureDokkatooAggregate(currentVersion: String, olderVersions: Li
it.olderVersionsDir.fileProvider(downloadKDocVersions.map { it.outputs.files.singleFile })
}

tasks.withType(DokkatooGenerateTask::class.java).configureEach {
tasks.withType(DokkaGenerateTask::class.java).configureEach {
it.dependsOn(downloadKDocVersions)
}

Expand All @@ -154,14 +148,15 @@ fun Project.configureDokkatooAggregate(currentVersion: String, olderVersions: Li
tasks.register(kdocWithoutOlder, Jar::class.java) {
it.archiveClassifier.set("javadoc")
it.from(
tasks.named("dokkatooGeneratePublicationHtml")
.map { (it as DokkatooGenerateTask).outputDirectory.get().asFile })
tasks.named("dokkaGeneratePublicationHtml")
.map { (it as DokkaGenerateTask).outputDirectory.get().asFile }
)
it.exclude("/older/**")
}
}

allprojects {
dependencies.add("dokkatoo", it)
dependencies.add("dokka", it)
}

return jar
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import com.gradleup.librarian.gradle.internal.findEnvironmentVariable
import compat.patrouille.configureJavaCompatibility
import compat.patrouille.configureKotlinCompatibility
import org.gradle.api.Project
import org.jetbrains.kotlin.gradle.dsl.abi.AbiValidationExtension
import java.util.Properties

internal fun Properties.javaCompatibility(): Int? {
Expand Down Expand Up @@ -99,7 +98,7 @@ fun Project.librarianModule() {
}
val publish = moduleProperties.publish() ?: true
if (publish) {
configureDokkatoo()
configureDokka()

configurePublishing(
createMissingPublications = moduleProperties.createMissingPublications() ?: true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ fun Project.librarianRoot() {
val sonatype = Sonatype(project, properties)
val signing = Signing(project, properties)

val kdocWithoutOlder = configureDokkatooAggregate(
val kdocWithoutOlder = configureDokkaAggregate(
currentVersion = pomMetadata.version,
olderVersions = properties.olderVersions()
)
Expand Down Expand Up @@ -65,7 +65,7 @@ fun Project.librarianRoot() {
kdocFiles = fileTree("build/dokka/html"),
outputDirectory = layout.buildDirectory.dir("static")
).configure {
it.dependsOn("dokkatooGeneratePublicationHtml")
it.dependsOn("dokkaGeneratePublicationHtml")
}

tasks.register("librarianPublishToSnapshots") {
Expand Down