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
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
package com.autonomousapps.convention

import com.autonomousapps.convention.tasks.metalava.MetalavaConfigurer
import com.vanniktech.maven.publish.tasks.JavadocJar
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.plugins.JavaPluginExtension
Expand All @@ -25,7 +24,7 @@ internal class BaseConventionPlugin(private val project: Project) {
pluginManager.run {
apply("com.vanniktech.maven.publish.base")
apply("org.gradle.signing")
apply("org.jetbrains.dokka")
apply("org.jetbrains.dokka-javadoc")
apply("com.autonomousapps.dependency-analysis")
apply("com.autonomousapps.testkit")
}
Expand Down Expand Up @@ -61,13 +60,6 @@ internal class BaseConventionPlugin(private val project: Project) {
t.isReproducibleFileOrder = true
}

tasks.withType(DokkaTask::class.java).configureEach { t ->
t.notCompatibleWithConfigurationCache("Uses 'project' at execution time")
}
tasks.withType(JavadocJar::class.java).configureEach { t ->
t.notCompatibleWithConfigurationCache("Uses 'project' at execution time")
}

// We only use the Jupiter platform (JUnit 5)
configurations.all {
it.exclude(mapOf("group" to "junit", "module" to "junit"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ public abstract class LibKotlinConventionPlugin : Plugin<Project> {
extensions.getByType(MavenPublishBaseExtension::class.java).run {
configure(
KotlinJvm(
// TODO(tsr): dokkaHtml is from Dokka v1. Does not exist in Dokka v2. See gradle.properties.
javadocJar = JavadocJar.Dokka("dokkaHtml"),
javadocJar = JavadocJar.Dokka("dokkaGeneratePublicationJavadoc"),
sourcesJar = true,
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,12 @@
package com.autonomousapps.convention

import com.autonomousapps.convention.internal.kotlin.KotlinConfigurer
import com.gradle.publish.PublishTask
import com.vanniktech.maven.publish.GradlePublishPlugin
import com.vanniktech.maven.publish.MavenPublishBaseExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
import org.gradle.api.tasks.compile.GroovyCompile
import org.gradle.plugin.devel.tasks.ValidatePlugins

Expand All @@ -30,7 +28,6 @@ public abstract class PluginConventionPlugin : Plugin<Project> {
configureKotlin()
configurePlugins()
configurePublishing()
disableConfigurationCache()
}

private fun Project.configureGroovy(versionCatalog: VersionCatalog) {
Expand Down Expand Up @@ -61,13 +58,4 @@ public abstract class PluginConventionPlugin : Plugin<Project> {
configure(GradlePublishPlugin())
}
}

private fun Project.disableConfigurationCache() {
tasks.withType(PublishTask::class.java).configureEach { t ->
t.notCompatibleWithConfigurationCache("Various problems")
}
tasks.withType(AbstractPublishToMaven::class.java) { t ->
t.notCompatibleWithConfigurationCache("Various problems")
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,18 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
internal class KotlinConfigurer(private val project: Project) {

private val versionCatalog = project.extensions.getByType(VersionCatalogsExtension::class.java).named("libs")

private val dokka = versionCatalog.findLibrary("kotlin.dokka").get()
private val javaTarget = versionCatalog.findVersion("javaTarget").orElseThrow().requiredVersion
private val kotlin = versionCatalog.findVersion("kotlin").get().requiredVersion

// this function expects strings of the form 2.x, not 2.x.y
private val kotlinVersion = KotlinVersion.fromVersion(kotlin.substringBeforeLast('.'))

fun configure(): Unit = project.run {
configureDokka()
configureKotlinExtension()
configureKotlinTarget()
configureKotlinVersion()
}

private fun Project.configureDokka() {
dependencies.add("dokkaHtmlPlugin", dokka)
}

private fun Project.configureKotlinExtension() {
project.extensions.getByType(KotlinJvmProjectExtension::class.java).run {
explicitApi()
Expand Down
4 changes: 0 additions & 4 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,5 @@ VERSION=3.7.1-SNAPSHOT
# https://kotlinlang.org/docs/gradle-configure-project.html#dependency-on-the-standard-library
kotlin.stdlib.default.dependency=false

# TODO(tsr): switch these around when migration to Dokka v2 complete.
org.jetbrains.dokka.experimental.gradle.pluginMode=V2EnabledWithHelpers
#org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled

# Uncomment to use maven local
#systemProp.local=true
4 changes: 1 addition & 3 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,7 @@ junit = "5.14.1"
kotlin = "2.3.20"
kotlinForAndroidtests = "2.3.20"
kotlinMetadata = "2.3.20"
# TODO(tsr): update Dokka
kotlinDokka = "2.0.0"
kotlinDokka = "2.2.0"
# Cannot be called kotlin-editor as it causes `libs.versions.kotlin.get()` to fail
kotlineditor-core = "0.20"
kotlineditor-relocated = "0.20.0"
Expand Down Expand Up @@ -62,7 +61,6 @@ junit-engine = { module = "org.junit.jupiter:junit-jupiter-engine" }
junit-launcher = { module = "org.junit.platform:junit-platform-launcher" }
junit-params = { module = "org.junit.jupiter:junit-jupiter-params" }
kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" }
kotlin-dokka = { module = "org.jetbrains.dokka:kotlin-as-java-plugin", version.ref = "kotlinDokka" }
kotlinDokkaGradlePlugin = { module = "org.jetbrains.dokka-javadoc:org.jetbrains.dokka-javadoc.gradle.plugin", version.ref = "kotlinDokka" }
kotlin-editor-core = { module = "app.cash.kotlin-editor:core", version.ref = "kotlineditor-core" }
kotlin-editor-grammar = { module = "app.cash.kotlin-editor:grammar", version.ref = "kotlineditor-core" }
Expand Down
Loading