From 3f7749704dea86baa6abc2c19b105956e73b9cdc Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 11 Oct 2022 19:12:25 +0200 Subject: [PATCH 01/58] try setting up buildSrc convention plugins --- build.gradle.kts | 68 +----------- buildSrc/build.gradle.kts | 9 ++ buildSrc/settings.gradle.kts | 1 + .../org/jetbrains/conventions/base.gradle.kts | 14 +++ .../conventions/kotlin-jvm.gradle.kts | 47 ++++++++ .../conventions/maven-publish.gradle.kts | 14 +++ core/build.gradle.kts | 3 +- integration-tests/build.gradle.kts | 4 + runners/gradle-plugin/build.gradle.kts | 3 +- settings.gradle.kts | 103 ++++++++++-------- 10 files changed, 154 insertions(+), 112 deletions(-) create mode 100644 buildSrc/settings.gradle.kts create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index 33afe07850..4918b0355f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,74 +1,16 @@ import org.jetbrains.* -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { - kotlin("jvm") apply false - id("java") - id("org.jetbrains.dokka") version "1.7.10" + org.jetbrains.conventions.base + id("org.jetbrains.dokka") id("io.github.gradle-nexus.publish-plugin") } val dokka_version: String by project -allprojects { - configureDokkaVersion() +group = "org.jetbrains.dokka" +version = dokka_version - group = "org.jetbrains.dokka" - version = dokka_version - - - val language_version: String by project - tasks.withType(KotlinCompile::class).all { - kotlinOptions { - freeCompilerArgs = freeCompilerArgs + listOf( - "-opt-in=kotlin.RequiresOptIn", - "-Xjsr305=strict", - "-Xskip-metadata-version-check", - // need 1.4 support, otherwise there might be problems with Gradle 6.x (it's bundling Kotlin 1.4) - "-Xsuppress-version-warnings" - ) - allWarningsAsErrors = true - languageVersion = language_version - apiVersion = language_version - jvmTarget = "1.8" - } - } - - repositories { - mavenCentral() - } -} - -subprojects { - apply { - plugin("org.jetbrains.kotlin.jvm") - plugin("java") - plugin("signing") - plugin("org.jetbrains.dokka") - } - - // Gradle metadata - java { - @Suppress("UnstableApiUsage") - withSourcesJar() - targetCompatibility = JavaVersion.VERSION_1_8 - } - - tasks { - val dokkaOutputDir = "$buildDir/dokka" - - dokkaHtml { - onlyIf { !isLocalPublication } - outputDirectory.set(file(dokkaOutputDir)) - } - - register("javadocJar") { - archiveClassifier.set("javadoc") - dependsOn(dokkaHtml) - from(dokkaOutputDir) - } - } -} println("Publication version: $dokka_version") tasks.register("validatePublications") @@ -82,7 +24,7 @@ nexusPublishing { } } -tasks.maybeCreate("dokkaPublish").run { +val dokkaPublish by tasks.registering { if (publicationChannels.any { it.isMavenRepository() }) { finalizedBy(tasks.named("closeAndReleaseSonatypeStagingRepository")) } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 90ccf15810..c82b890982 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -7,7 +7,16 @@ repositories { } dependencies { + // Import Gradle Plugins that will be used in the buildSrc pre-compiled script plugins, and any `build.gradle.kts` + // files in the project. + // Use their Maven coordinates (plus versions), not Gradle plugin IDs! + // This should be the only place that Gradle plugin versions are defined, so they are aligned across all build scripts + + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20") implementation("com.github.jengelman.gradle.plugins:shadow:2.0.4") + implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.10.1") implementation("io.github.gradle-nexus:publish-plugin:1.1.0") + implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.7.10") + implementation("com.gradle.publish:plugin-publish-plugin:0.20.0") } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 0000000000..29744ec1bc --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "buildSrc" diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts new file mode 100644 index 0000000000..d4ce6584af --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts @@ -0,0 +1,14 @@ +package org.jetbrains.conventions + +import org.jetbrains.configureDokkaVersion + +plugins { + base +} + +description = "common Gradle configuration that should be applied to all projets" + +if (project != rootProject) { + project.group = rootProject.group + project.version = rootProject.version +} diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts new file mode 100644 index 0000000000..25f0bfdb28 --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -0,0 +1,47 @@ +package org.jetbrains.conventions + +import org.jetbrains.configureDokkaVersion +import org.jetbrains.isLocalPublication +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + id("org.jetbrains.conventions.base") + kotlin("jvm") + id("org.jetbrains.dokka") +} + +configureDokkaVersion() + +tasks.dokkaHtml { + onlyIf { !isLocalPublication } + outputDirectory.set(layout.buildDirectory.dir("dokka").map { it.asFile }) +} + +val javadocJar by tasks.registering(Jar::class) { + archiveClassifier.set("javadoc") + from(tasks.dokkaHtml) +} + +val language_version: String by project + +tasks.withType().configureEach { + kotlinOptions { + freeCompilerArgs = freeCompilerArgs + listOf( + "-opt-in=kotlin.RequiresOptIn", + "-Xjsr305=strict", + "-Xskip-metadata-version-check", + // need 1.4 support, otherwise there might be problems with Gradle 6.x (it's bundling Kotlin 1.4) + "-Xsuppress-version-warnings" + ) + allWarningsAsErrors = true + languageVersion = language_version + apiVersion = language_version + jvmTarget = "1.8" + } +} + +// Gradle metadata +java { + withSourcesJar() + targetCompatibility = JavaVersion.VERSION_1_8 +} diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts new file mode 100644 index 0000000000..11594c6733 --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts @@ -0,0 +1,14 @@ +package org.jetbrains.conventions + +import org.gradle.kotlin.dsl.`maven-publish` +import org.gradle.kotlin.dsl.provideDelegate +import org.gradle.kotlin.dsl.register +import org.gradle.kotlin.dsl.repositories +import org.jetbrains.ValidatePublications +import org.jetbrains.publicationChannels + +plugins { + id("org.jetbrains.conventions.base") + `maven-publish` + signing +} diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 97b8997649..c1e4e909d5 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -2,7 +2,8 @@ import org.jetbrains.dokkaVersion import org.jetbrains.registerDokkaArtifactPublication plugins { - `maven-publish` + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` } dependencies { diff --git a/integration-tests/build.gradle.kts b/integration-tests/build.gradle.kts index 45e1609766..e5b3799176 100644 --- a/integration-tests/build.gradle.kts +++ b/integration-tests/build.gradle.kts @@ -1,6 +1,10 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat import org.gradle.api.tasks.testing.logging.TestLogEvent +plugins { + org.jetbrains.conventions.`kotlin-jvm` +} + subprojects { sourceSets { create("integrationTest") { diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 2a61294fd4..b0967149d1 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -3,7 +3,8 @@ import org.jetbrains.* plugins { `java-gradle-plugin` - id("com.gradle.plugin-publish") version "0.20.0" + `kotlin-dsl` + id("com.gradle.plugin-publish")// version "0.20.0" } repositories { diff --git a/settings.gradle.kts b/settings.gradle.kts index 859df2bb17..5360462350 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,51 +1,44 @@ rootProject.name = "dokka" -include("core") -include("core:test-api") -include("core:content-matcher-test-utils") - -include("kotlin-analysis") -include("kotlin-analysis:intellij-dependency") -include("kotlin-analysis:compiler-dependency") - -include("runners:gradle-plugin") -include("runners:cli") -include("runners:maven-plugin") - -include("plugins:base") -include("plugins:base:frontend") -include("plugins:base:search-component") -include("plugins:base:base-test-utils") -include("plugins:all-modules-page") -include("plugins:templating") -include("plugins:versioning") -include("plugins:android-documentation") - -include("plugins:mathjax") -include("plugins:gfm") -include("plugins:gfm:gfm-template-processing") -include("plugins:jekyll") -include("plugins:jekyll:jekyll-template-processing") -include("plugins:kotlin-as-java") -include("plugins:javadoc") - -include("integration-tests") -include("integration-tests:gradle") -include("integration-tests:cli") -include("integration-tests:maven") - -include("test-utils") - -include("docs") - -pluginManagement { - val kotlin_version: String by settings - plugins { - id("org.jetbrains.kotlin.jvm") version kotlin_version - id("com.github.johnrengelman.shadow") version "7.1.2" - id("com.gradle.plugin-publish") version "0.20.0" - } -} +include( + ":core", + ":core:test-api", + ":core:content-matcher-test-utils", + + ":kotlin-analysis", + ":kotlin-analysis:intellij-dependency", + ":kotlin-analysis:compiler-dependency", + + ":runners:gradle-plugin", + ":runners:cli", + ":runners:maven-plugin", + + ":plugins:base", + ":plugins:base:frontend", + ":plugins:base:search-component", + ":plugins:base:base-test-utils", + ":plugins:all-modules-page", + ":plugins:templating", + ":plugins:versioning", + ":plugins:android-documentation", + + ":plugins:mathjax", + ":plugins:gfm", + ":plugins:gfm:gfm-template-processing", + ":plugins:jekyll", + ":plugins:jekyll:jekyll-template-processing", + ":plugins:kotlin-as-java", + ":plugins:javadoc", + + ":integration-tests", + ":integration-tests:gradle", + ":integration-tests:cli", + ":integration-tests:maven", + + ":test-utils", + + ":docs", +) val isCiBuild = System.getenv("GITHUB_ACTIONS") != null || System.getenv("TEAMCITY_VERSION") != null @@ -59,4 +52,20 @@ gradleEnterprise { termsOfServiceAgree = "yes" publishAlwaysIf(isCiBuild) } -} \ No newline at end of file +} + +@Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature +dependencyResolutionManagement { + + repositories { + mavenCentral() + gradlePluginPortal() + } + + pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } + } +} From b591e34eab013b77f5bead5d96acfc9aba43a4fb Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 21:40:49 +0200 Subject: [PATCH 02/58] finish creating buildSrc plugins --- .../dokka-integration-test.gradle.kts | 47 ++++++++ .../build.gradle.kts | 4 + core/test-api/build.gradle.kts | 3 +- integration-tests/build.gradle.kts | 112 +++++++++--------- integration-tests/cli/build.gradle.kts | 3 +- integration-tests/gradle/build.gradle.kts | 4 + integration-tests/maven/build.gradle.kts | 4 + kotlin-analysis/build.gradle.kts | 3 +- .../compiler-dependency/build.gradle.kts | 3 +- .../intellij-dependency/build.gradle.kts | 3 +- plugins/all-modules-page/build.gradle.kts | 7 +- .../android-documentation/build.gradle.kts | 5 + plugins/base/base-test-utils/build.gradle.kts | 5 + plugins/base/build.gradle.kts | 4 + plugins/base/frontend/build.gradle.kts | 1 + plugins/build.gradle.kts | 65 +++++----- plugins/gfm/build.gradle.kts | 5 + .../gfm-template-processing/build.gradle.kts | 7 +- plugins/javadoc/build.gradle.kts | 5 + plugins/jekyll/build.gradle.kts | 5 + .../build.gradle.kts | 7 +- plugins/kotlin-as-java/build.gradle.kts | 5 + plugins/mathjax/build.gradle.kts | 5 + plugins/templating/build.gradle.kts | 7 +- plugins/versioning/build.gradle.kts | 7 +- runners/build.gradle.kts | 21 ++-- runners/cli/build.gradle.kts | 3 + runners/gradle-plugin/build.gradle.kts | 21 +++- runners/gradle-plugin/gradle.properties | 1 - runners/maven-plugin/build.gradle.kts | 6 + settings.gradle.kts | 2 +- test-utils/build.gradle.kts | 3 + 32 files changed, 271 insertions(+), 112 deletions(-) create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts delete mode 100644 runners/gradle-plugin/gradle.properties diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts new file mode 100644 index 0000000000..c6a05523cb --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts @@ -0,0 +1,47 @@ +package org.jetbrains.conventions + +import org.gradle.api.tasks.testing.logging.TestExceptionFormat +import org.gradle.api.tasks.testing.logging.TestLogEvent + +plugins { + id("org.jetbrains.conventions.kotlin-jvm") +} + +val integrationTestSourceSet = sourceSets.create("integrationTest") { + compileClasspath += sourceSets.main.get().output + runtimeClasspath += sourceSets.main.get().output +} + +val integrationTest by tasks.registering(Test::class) { + maxHeapSize = "2G" + description = "Runs integration tests." + group = "verification" + useJUnit() + + + testClassesDirs = integrationTestSourceSet.output.classesDirs + classpath = integrationTestSourceSet.runtimeClasspath + + setForkEvery(1) + project.properties["dokka_integration_test_parallelism"]?.toString()?.toIntOrNull()?.let { parallelism -> + maxParallelForks = parallelism + } + environment( + "isExhaustive", + project.properties["dokka_integration_test_is_exhaustive"]?.toString()?.toBoolean() + ?: System.getenv("DOKKA_INTEGRATION_TEST_IS_EXHAUSTIVE")?.toBoolean() + ?: false.toString() + ) + + testLogging { + exceptionFormat = TestExceptionFormat.FULL + events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) + showExceptions = true + showCauses = true + showStackTraces = true + } +} + +tasks.check { + dependsOn(integrationTest) +} diff --git a/core/content-matcher-test-utils/build.gradle.kts b/core/content-matcher-test-utils/build.gradle.kts index 07d4bed963..1a95f1cdcc 100644 --- a/core/content-matcher-test-utils/build.gradle.kts +++ b/core/content-matcher-test-utils/build.gradle.kts @@ -1,3 +1,7 @@ +plugins { + org.jetbrains.conventions.`kotlin-jvm` +} + dependencies { implementation(project(":core:test-api")) implementation(kotlin("stdlib-jdk8")) diff --git a/core/test-api/build.gradle.kts b/core/test-api/build.gradle.kts index cb36dc2016..b3f570100a 100644 --- a/core/test-api/build.gradle.kts +++ b/core/test-api/build.gradle.kts @@ -1,7 +1,8 @@ import org.jetbrains.registerDokkaArtifactPublication plugins { - `maven-publish` + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` } dependencies { diff --git a/integration-tests/build.gradle.kts b/integration-tests/build.gradle.kts index e5b3799176..2e37a1450a 100644 --- a/integration-tests/build.gradle.kts +++ b/integration-tests/build.gradle.kts @@ -1,64 +1,64 @@ -import org.gradle.api.tasks.testing.logging.TestExceptionFormat -import org.gradle.api.tasks.testing.logging.TestLogEvent +//import org.gradle.api.tasks.testing.logging.TestExceptionFormat +//import org.gradle.api.tasks.testing.logging.TestLogEvent plugins { org.jetbrains.conventions.`kotlin-jvm` } -subprojects { - sourceSets { - create("integrationTest") { - compileClasspath += sourceSets.main.get().output - runtimeClasspath += sourceSets.main.get().output - } - } - - configurations.getByName("integrationTestImplementation") { - extendsFrom(configurations.implementation.get()) - } - - configurations.getByName("integrationTestRuntimeOnly") { - extendsFrom(configurations.runtimeOnly.get()) - } - - dependencies { - implementation(project(":integration-tests")) - } - - val integrationTest by tasks.register("integrationTest") { - maxHeapSize = "2G" - description = "Runs integration tests." - group = "verification" - useJUnit() - - - testClassesDirs = sourceSets["integrationTest"].output.classesDirs - classpath = sourceSets["integrationTest"].runtimeClasspath - - setForkEvery(1) - project.properties["dokka_integration_test_parallelism"]?.toString()?.toIntOrNull()?.let { parallelism -> - maxParallelForks = parallelism - } - environment( - "isExhaustive", - project.properties["dokka_integration_test_is_exhaustive"]?.toString()?.toBoolean() - ?: System.getenv("DOKKA_INTEGRATION_TEST_IS_EXHAUSTIVE")?.toBoolean() - ?: false.toString() - ) - - testLogging { - exceptionFormat = TestExceptionFormat.FULL - events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) - showExceptions = true - showCauses = true - showStackTraces = true - } - } - - tasks.check { - dependsOn(integrationTest) - } -} +//subprojects { +// sourceSets { +// create("integrationTest") { +// compileClasspath += sourceSets.main.get().output +// runtimeClasspath += sourceSets.main.get().output +// } +// } +// +// configurations.getByName("integrationTestImplementation") { +// extendsFrom(configurations.implementation.get()) +// } +// +// configurations.getByName("integrationTestRuntimeOnly") { +// extendsFrom(configurations.runtimeOnly.get()) +// } +// +// dependencies { +// implementation(project(":integration-tests")) +// } +// +// val integrationTest by tasks.register("integrationTest") { +// maxHeapSize = "2G" +// description = "Runs integration tests." +// group = "verification" +// useJUnit() +// +// +// testClassesDirs = sourceSets["integrationTest"].output.classesDirs +// classpath = sourceSets["integrationTest"].runtimeClasspath +// +// setForkEvery(1) +// project.properties["dokka_integration_test_parallelism"]?.toString()?.toIntOrNull()?.let { parallelism -> +// maxParallelForks = parallelism +// } +// environment( +// "isExhaustive", +// project.properties["dokka_integration_test_is_exhaustive"]?.toString()?.toBoolean() +// ?: System.getenv("DOKKA_INTEGRATION_TEST_IS_EXHAUSTIVE")?.toBoolean() +// ?: false.toString() +// ) +// +// testLogging { +// exceptionFormat = TestExceptionFormat.FULL +// events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) +// showExceptions = true +// showCauses = true +// showStackTraces = true +// } +// } +// +// tasks.check { +// dependsOn(integrationTest) +// } +//} dependencies { implementation(kotlin("stdlib")) diff --git a/integration-tests/cli/build.gradle.kts b/integration-tests/cli/build.gradle.kts index 33c2b827d7..39e32b95dd 100644 --- a/integration-tests/cli/build.gradle.kts +++ b/integration-tests/cli/build.gradle.kts @@ -1,7 +1,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar - plugins { + org.jetbrains.conventions.`dokka-integration-test` id("com.github.johnrengelman.shadow") } @@ -25,6 +25,7 @@ dependencies { basePluginShadow(project(":plugins:base")) basePluginShadow(project(":kotlin-analysis")) // compileOnly in base plugin } + val basePluginShadowJar by tasks.register("basePluginShadowJar", ShadowJar::class) { configurations = listOf(basePluginShadow) archiveFileName.set("fat-base-plugin-$dokka_version.jar") diff --git a/integration-tests/gradle/build.gradle.kts b/integration-tests/gradle/build.gradle.kts index 0cb1dc120f..143d8cef99 100644 --- a/integration-tests/gradle/build.gradle.kts +++ b/integration-tests/gradle/build.gradle.kts @@ -1,5 +1,9 @@ import org.jetbrains.dependsOnMavenLocalPublication +plugins { + org.jetbrains.conventions.`dokka-integration-test` +} + dependencies { implementation(kotlin("stdlib")) implementation(kotlin("test-junit")) diff --git a/integration-tests/maven/build.gradle.kts b/integration-tests/maven/build.gradle.kts index 1c747bbcb8..082a026634 100644 --- a/integration-tests/maven/build.gradle.kts +++ b/integration-tests/maven/build.gradle.kts @@ -1,6 +1,10 @@ import org.jetbrains.SetupMaven import org.jetbrains.dependsOnMavenLocalPublication +plugins { + org.jetbrains.conventions.`dokka-integration-test` +} + evaluationDependsOn(":runners:maven-plugin") dependencies { diff --git a/kotlin-analysis/build.gradle.kts b/kotlin-analysis/build.gradle.kts index c517000ea8..e2cb50e049 100644 --- a/kotlin-analysis/build.gradle.kts +++ b/kotlin-analysis/build.gradle.kts @@ -1,8 +1,9 @@ import org.jetbrains.registerDokkaArtifactPublication plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` id("com.github.johnrengelman.shadow") - `maven-publish` } dependencies { diff --git a/kotlin-analysis/compiler-dependency/build.gradle.kts b/kotlin-analysis/compiler-dependency/build.gradle.kts index 63e0fb5a65..bbea28dd43 100644 --- a/kotlin-analysis/compiler-dependency/build.gradle.kts +++ b/kotlin-analysis/compiler-dependency/build.gradle.kts @@ -2,8 +2,9 @@ import org.jetbrains.DokkaPublicationBuilder.Component.Shadow import org.jetbrains.registerDokkaArtifactPublication plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` id("com.github.johnrengelman.shadow") - `maven-publish` } dependencies { diff --git a/kotlin-analysis/intellij-dependency/build.gradle.kts b/kotlin-analysis/intellij-dependency/build.gradle.kts index 09c47ef506..d9eaad49de 100644 --- a/kotlin-analysis/intellij-dependency/build.gradle.kts +++ b/kotlin-analysis/intellij-dependency/build.gradle.kts @@ -2,8 +2,9 @@ import org.jetbrains.DokkaPublicationBuilder.Component.Shadow import org.jetbrains.registerDokkaArtifactPublication plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` id("com.github.johnrengelman.shadow") - `maven-publish` } repositories { diff --git a/plugins/all-modules-page/build.gradle.kts b/plugins/all-modules-page/build.gradle.kts index f993d45c18..965e087788 100644 --- a/plugins/all-modules-page/build.gradle.kts +++ b/plugins/all-modules-page/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + registerDokkaArtifactPublication("dokkaAllModulesPage") { artifactId = "all-modules-page-plugin" } @@ -23,4 +28,4 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") -} \ No newline at end of file +} diff --git a/plugins/android-documentation/build.gradle.kts b/plugins/android-documentation/build.gradle.kts index 79a891651e..670a42343d 100644 --- a/plugins/android-documentation/build.gradle.kts +++ b/plugins/android-documentation/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) testImplementation(project(":plugins:base")) diff --git a/plugins/base/base-test-utils/build.gradle.kts b/plugins/base/base-test-utils/build.gradle.kts index 122b9b924b..2d3f8a55f0 100644 --- a/plugins/base/base-test-utils/build.gradle.kts +++ b/plugins/base/base-test-utils/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { compileOnly(project(":plugins:base")) implementation(project(":core:test-api")) diff --git a/plugins/base/build.gradle.kts b/plugins/base/build.gradle.kts index 91684ece7a..34067c95d9 100644 --- a/plugins/base/build.gradle.kts +++ b/plugins/base/build.gradle.kts @@ -1,5 +1,9 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} dependencies { val coroutines_version: String by project diff --git a/plugins/base/frontend/build.gradle.kts b/plugins/base/frontend/build.gradle.kts index aa39d20e49..9ed576cd07 100644 --- a/plugins/base/frontend/build.gradle.kts +++ b/plugins/base/frontend/build.gradle.kts @@ -1,4 +1,5 @@ plugins { + base id("com.github.node-gradle.node") version "3.2.1" } diff --git a/plugins/build.gradle.kts b/plugins/build.gradle.kts index 1b15a20979..d26b620df9 100644 --- a/plugins/build.gradle.kts +++ b/plugins/build.gradle.kts @@ -1,30 +1,35 @@ -import org.gradle.api.tasks.testing.logging.TestExceptionFormat -import org.gradle.api.tasks.testing.logging.TestLogEvent - -subprojects { - apply { - plugin("maven-publish") - } - - dependencies { - compileOnly(project(":core")) - implementation(kotlin("stdlib-jdk8")) - implementation(kotlin("stdlib")) - implementation(kotlin("reflect")) - - testImplementation(project(":test-utils")) - testImplementation(project(":core:test-api")) - testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") - } - - tasks.test { - useJUnitPlatform() - testLogging { - exceptionFormat = TestExceptionFormat.FULL - events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) - showExceptions = true - showCauses = true - showStackTraces = true - } - } -} +//import org.gradle.api.tasks.testing.logging.TestExceptionFormat +//import org.gradle.api.tasks.testing.logging.TestLogEvent +// +//plugins { +// org.jetbrains.conventions.`kotlin-jvm` +// org.jetbrains.conventions.`maven-publish` +//} +// +//subprojects { +// apply { +// plugin("maven-publish") +// } +// +// dependencies { +// compileOnly(project(":core")) +// implementation(kotlin("stdlib-jdk8")) +// implementation(kotlin("stdlib")) +// implementation(kotlin("reflect")) +// +// testImplementation(project(":test-utils")) +// testImplementation(project(":core:test-api")) +// testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") +// } +// +// tasks.test { +// useJUnitPlatform() +// testLogging { +// exceptionFormat = TestExceptionFormat.FULL +// events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) +// showExceptions = true +// showCauses = true +// showStackTraces = true +// } +// } +//} diff --git a/plugins/gfm/build.gradle.kts b/plugins/gfm/build.gradle.kts index 8b1be11df6..5bf70d8976 100644 --- a/plugins/gfm/build.gradle.kts +++ b/plugins/gfm/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) testImplementation(project(":plugins:base")) diff --git a/plugins/gfm/gfm-template-processing/build.gradle.kts b/plugins/gfm/gfm-template-processing/build.gradle.kts index b401c0c7f0..445f3e6e46 100644 --- a/plugins/gfm/gfm-template-processing/build.gradle.kts +++ b/plugins/gfm/gfm-template-processing/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) implementation(project(":plugins:gfm")) @@ -12,4 +17,4 @@ dependencies { registerDokkaArtifactPublication("dokkaGfmTemplateProcessing") { artifactId = "gfm-template-processing-plugin" -} \ No newline at end of file +} diff --git a/plugins/javadoc/build.gradle.kts b/plugins/javadoc/build.gradle.kts index 471e4ddaeb..31cc623ee3 100644 --- a/plugins/javadoc/build.gradle.kts +++ b/plugins/javadoc/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { compileOnly(project(":kotlin-analysis")) implementation("com.soywiz.korlibs.korte:korte-jvm:2.7.0") diff --git a/plugins/jekyll/build.gradle.kts b/plugins/jekyll/build.gradle.kts index 64cf9800e9..0c25484142 100644 --- a/plugins/jekyll/build.gradle.kts +++ b/plugins/jekyll/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) implementation(project(":plugins:gfm")) diff --git a/plugins/jekyll/jekyll-template-processing/build.gradle.kts b/plugins/jekyll/jekyll-template-processing/build.gradle.kts index 2ccb6b89c7..db68e639a3 100644 --- a/plugins/jekyll/jekyll-template-processing/build.gradle.kts +++ b/plugins/jekyll/jekyll-template-processing/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) implementation(project(":plugins:jekyll")) @@ -14,4 +19,4 @@ dependencies { registerDokkaArtifactPublication("dokkaJekyllTemplateProcessing") { artifactId = "jekyll-template-processing-plugin" -} \ No newline at end of file +} diff --git a/plugins/kotlin-as-java/build.gradle.kts b/plugins/kotlin-as-java/build.gradle.kts index fb20d659d5..2819c152fd 100644 --- a/plugins/kotlin-as-java/build.gradle.kts +++ b/plugins/kotlin-as-java/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { compileOnly(project(":kotlin-analysis")) implementation(project(":plugins:base")) diff --git a/plugins/mathjax/build.gradle.kts b/plugins/mathjax/build.gradle.kts index 0b69a03827..cda8758bfe 100644 --- a/plugins/mathjax/build.gradle.kts +++ b/plugins/mathjax/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + dependencies { implementation(project(":plugins:base")) diff --git a/plugins/templating/build.gradle.kts b/plugins/templating/build.gradle.kts index d6d602ddf6..bc4ebd3e62 100644 --- a/plugins/templating/build.gradle.kts +++ b/plugins/templating/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + registerDokkaArtifactPublication("templating-plugin") { artifactId = "templating-plugin" } @@ -17,4 +22,4 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") testImplementation(project(":plugins:base:base-test-utils")) -} \ No newline at end of file +} diff --git a/plugins/versioning/build.gradle.kts b/plugins/versioning/build.gradle.kts index f838399bd3..eac4977b14 100644 --- a/plugins/versioning/build.gradle.kts +++ b/plugins/versioning/build.gradle.kts @@ -1,5 +1,10 @@ import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + registerDokkaArtifactPublication("versioning-plugin") { artifactId = "versioning-plugin" } @@ -18,4 +23,4 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") implementation("org.apache.maven:maven-artifact:3.8.5") -} \ No newline at end of file +} diff --git a/runners/build.gradle.kts b/runners/build.gradle.kts index 095367ad3f..5802e3a6a0 100644 --- a/runners/build.gradle.kts +++ b/runners/build.gradle.kts @@ -1,9 +1,14 @@ -subprojects { - apply { - plugin("maven-publish") - } - - tasks.processResources { - duplicatesStrategy = DuplicatesStrategy.WARN - } +plugins { + org.jetbrains.conventions.`kotlin-jvm` } + + +//subprojects { +// apply { +// plugin("maven-publish") +// } +// +// tasks.processResources { +// duplicatesStrategy = DuplicatesStrategy.WARN +// } +//} diff --git a/runners/cli/build.gradle.kts b/runners/cli/build.gradle.kts index 73b01acb43..c7509e0acb 100644 --- a/runners/cli/build.gradle.kts +++ b/runners/cli/build.gradle.kts @@ -1,7 +1,10 @@ import org.jetbrains.DokkaPublicationBuilder.Component.Shadow import org.jetbrains.registerDokkaArtifactPublication + plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` id("com.github.johnrengelman.shadow") } diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index b0967149d1..bcd29356b9 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -4,21 +4,23 @@ import org.jetbrains.* plugins { `java-gradle-plugin` `kotlin-dsl` + org.jetbrains.conventions.`maven-publish` id("com.gradle.plugin-publish")// version "0.20.0" } -repositories { - google() -} +//repositories { +// google() +//} dependencies { api(project(":core")) compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin") compileOnly("com.android.tools.build:gradle:4.0.1") - compileOnly(gradleKotlinDsl()) +// compileOnly(gradleKotlinDsl()) + testImplementation(project(":test-utils")) - testImplementation(gradleKotlinDsl()) +// testImplementation(gradleKotlinDsl()) testImplementation("org.jetbrains.kotlin:kotlin-gradle-plugin") testImplementation("com.android.tools.build:gradle:4.0.1") @@ -84,6 +86,13 @@ pluginBundle { } } +val javadocJar by tasks.creating(Jar::class) { + group = JavaBasePlugin.DOCUMENTATION_GROUP + description = "Assembles java doc to jar" + archiveClassifier.set("javadoc") + from(tasks.javadoc) +} + publishing { publications { register("dokkaGradlePluginForIntegrationTests") { @@ -95,7 +104,7 @@ publishing { register("pluginMaven") { configurePom("Dokka ${project.name}") artifactId = "dokka-gradle-plugin" - artifact(tasks["javadocJar"]) + artifact(javadocJar) } afterEvaluate { diff --git a/runners/gradle-plugin/gradle.properties b/runners/gradle-plugin/gradle.properties deleted file mode 100644 index 0d6aa7b61f..0000000000 --- a/runners/gradle-plugin/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -kotlin.stdlib.default.dependency=false diff --git a/runners/maven-plugin/build.gradle.kts b/runners/maven-plugin/build.gradle.kts index d62b82ddf3..a03e5f2b41 100644 --- a/runners/maven-plugin/build.gradle.kts +++ b/runners/maven-plugin/build.gradle.kts @@ -1,7 +1,13 @@ +import kotlinx.validation.sourceSets import org.jetbrains.CrossPlatformExec import org.jetbrains.SetupMaven import org.jetbrains.registerDokkaArtifactPublication +plugins { + org.jetbrains.conventions.`kotlin-jvm` + org.jetbrains.conventions.`maven-publish` +} + val setupMaven by tasks.register("setupMaven") dependencies { diff --git a/settings.gradle.kts b/settings.gradle.kts index 5360462350..42b935d51f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -59,7 +59,7 @@ dependencyResolutionManagement { repositories { mavenCentral() - gradlePluginPortal() + google() } pluginManagement { diff --git a/test-utils/build.gradle.kts b/test-utils/build.gradle.kts index 23e7ef4052..c80472fd9a 100644 --- a/test-utils/build.gradle.kts +++ b/test-utils/build.gradle.kts @@ -1,3 +1,6 @@ +plugins { + org.jetbrains.conventions.`kotlin-jvm` +} dependencies { api(kotlin("test-junit")) From a8abe34d21787af674d63fda146f0516f4b0054a Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:00:11 +0200 Subject: [PATCH 03/58] create MavenProjectLocal helper --- .../conventions/maven-publish.gradle.kts | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts index 11594c6733..f2b4f058d9 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts @@ -1,14 +1,20 @@ package org.jetbrains.conventions -import org.gradle.kotlin.dsl.`maven-publish` -import org.gradle.kotlin.dsl.provideDelegate -import org.gradle.kotlin.dsl.register -import org.gradle.kotlin.dsl.repositories -import org.jetbrains.ValidatePublications -import org.jetbrains.publicationChannels - plugins { - id("org.jetbrains.conventions.base") - `maven-publish` - signing + id("org.jetbrains.conventions.base") + `maven-publish` + signing +} + +publishing { + publications.withType().configureEach { + repositories { + // Publish to a project-local Maven directory, for verification. To test, run: + // ./gradlew publishAllPublicationsToMavenProjectLocalRepository + // and check $rootDir/build/maven-project-local + maven(rootProject.layout.buildDirectory.dir("maven-project-local")) { + name = "MavenProjectLocal" + } + } + } } From 2dd31cf3651144b4383ab67a0451c8af9b8da434 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:00:58 +0200 Subject: [PATCH 04/58] dokka-gradle-plugin: warn on duplicate resources --- runners/gradle-plugin/build.gradle.kts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index bcd29356b9..e94f9c8e52 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -25,7 +25,7 @@ dependencies { testImplementation("com.android.tools.build:gradle:4.0.1") // Fix https://github.com/gradle/gradle/issues/16774 - testImplementation ( + testImplementation( files( serviceOf().getModule("gradle-tooling-api-builders") .classpath.asFiles.first() @@ -128,3 +128,7 @@ afterEvaluate { // Workaround for an interesting design choice https://github.co configureSonatypePublicationIfNecessary("pluginMaven", "dokkaGradlePluginPluginMarkerMaven") createDokkaPublishTaskIfNecessary() } + +tasks.processResources { + duplicatesStrategy = DuplicatesStrategy.WARN +} From 58bc1c8ab2b469327ce47796591c24711aa538db Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:14:47 +0200 Subject: [PATCH 05/58] dokka-gradle-plugin: fix kotlin-dsl compatibility --- .../dokka/gradle/AbstractDokkaLeafTask.kt | 14 +++++++------- .../jetbrains/dokka/gradle/gradleConfigurations.kt | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt index 412695ec74..68e117e980 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt @@ -4,6 +4,7 @@ import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.internal.plugins.DslObject import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Nested +import org.gradle.kotlin.dsl.container import org.gradle.work.DisableCachingByDefault @DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") @@ -11,15 +12,14 @@ abstract class AbstractDokkaLeafTask : AbstractDokkaTask() { @get:Internal val dokkaSourceSets: NamedDomainObjectContainer = - project.container(GradleDokkaSourceSetBuilder::class.java, gradleDokkaSourceSetBuilderFactory()) - .also { container -> - DslObject(this).extensions.add("dokkaSourceSets", container) - project.kotlinOrNull?.sourceSets?.all { kotlinSourceSet -> - container.register(kotlinSourceSet.name) { dokkaSourceSet -> - dokkaSourceSet.configureWithKotlinSourceSet(kotlinSourceSet) - } + project.container(GradleDokkaSourceSetBuilder::class, gradleDokkaSourceSetBuilderFactory()).also { container -> + DslObject(this).extensions.add("dokkaSourceSets", container) + project.kotlinOrNull?.sourceSets?.all sourceSet@{ + container.register(name) { + configureWithKotlinSourceSet(this@sourceSet) } } + } /** * Only contains source sets that are marked with `isDocumented`. diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt index 7b924b7588..3663e3e91e 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt @@ -35,8 +35,8 @@ internal fun Project.maybeCreateDokkaRuntimeConfiguration(dokkaTaskName: String) extendsFrom(maybeCreateDokkaDefaultRuntimeConfiguration()) attributes.attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage::class.java, "java-runtime")) isCanBeConsumed = false - defaultDependencies { dependencies -> - dependencies.add(project.dokkaArtifacts.dokkaCore) + defaultDependencies { + add(project.dokkaArtifacts.dokkaCore) } } } From 89a504fbfe80a1489967e33e51ffc2c1bd59bff9 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:41:49 +0200 Subject: [PATCH 06/58] disable empty subproject :plugins:base:search-component --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 42b935d51f..d1b27c504f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -15,7 +15,7 @@ include( ":plugins:base", ":plugins:base:frontend", - ":plugins:base:search-component", +// ":plugins:base:search-component", ":plugins:base:base-test-utils", ":plugins:all-modules-page", ":plugins:templating", From 7a1a4308648724298aeafd42e91fa53d878dabd9 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:42:01 +0200 Subject: [PATCH 07/58] formatting --- .../main/kotlin/org/jetbrains/conventions/base.gradle.kts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts index d4ce6584af..95a5fa21b4 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts @@ -1,14 +1,12 @@ package org.jetbrains.conventions -import org.jetbrains.configureDokkaVersion - plugins { - base + base } description = "common Gradle configuration that should be applied to all projets" if (project != rootProject) { - project.group = rootProject.group - project.version = rootProject.version + project.group = rootProject.group + project.version = rootProject.version } From 968a1236ca884fb25e2e17dba532782b0fba7523 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:43:49 +0200 Subject: [PATCH 08/58] re-add dependencies that were in :dokka:plugins subproject {} block --- plugins/all-modules-page/build.gradle.kts | 9 +++++++++ plugins/android-documentation/build.gradle.kts | 8 ++++++++ plugins/base/base-test-utils/build.gradle.kts | 9 +++++++++ plugins/base/build.gradle.kts | 8 ++++++++ plugins/gfm/build.gradle.kts | 8 ++++++++ plugins/gfm/gfm-template-processing/build.gradle.kts | 8 ++++++++ plugins/javadoc/build.gradle.kts | 8 ++++++++ plugins/jekyll/build.gradle.kts | 8 ++++++++ .../jekyll/jekyll-template-processing/build.gradle.kts | 9 +++++++++ plugins/kotlin-as-java/build.gradle.kts | 8 ++++++++ plugins/mathjax/build.gradle.kts | 8 ++++++++ plugins/templating/build.gradle.kts | 8 ++++++++ plugins/versioning/build.gradle.kts | 8 ++++++++ 13 files changed, 107 insertions(+) diff --git a/plugins/all-modules-page/build.gradle.kts b/plugins/all-modules-page/build.gradle.kts index 965e087788..b05b2961bf 100644 --- a/plugins/all-modules-page/build.gradle.kts +++ b/plugins/all-modules-page/build.gradle.kts @@ -10,6 +10,11 @@ registerDokkaArtifactPublication("dokkaAllModulesPage") { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) + compileOnly(project(":kotlin-analysis")) implementation(project(":plugins:base")) implementation(project(":plugins:templating")) @@ -28,4 +33,8 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } diff --git a/plugins/android-documentation/build.gradle.kts b/plugins/android-documentation/build.gradle.kts index 670a42343d..e129352038 100644 --- a/plugins/android-documentation/build.gradle.kts +++ b/plugins/android-documentation/build.gradle.kts @@ -6,9 +6,17 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) + implementation(project(":plugins:base")) testImplementation(project(":plugins:base")) testImplementation(project(":plugins:base:base-test-utils")) + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("androidDocumentationPlugin") { diff --git a/plugins/base/base-test-utils/build.gradle.kts b/plugins/base/base-test-utils/build.gradle.kts index 2d3f8a55f0..b7d021159d 100644 --- a/plugins/base/base-test-utils/build.gradle.kts +++ b/plugins/base/base-test-utils/build.gradle.kts @@ -6,11 +6,20 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) + compileOnly(project(":plugins:base")) implementation(project(":core:test-api")) val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") implementation(kotlin("test-junit")) + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("dokkaBaseTestUtils") { diff --git a/plugins/base/build.gradle.kts b/plugins/base/build.gradle.kts index 34067c95d9..1cc084544c 100644 --- a/plugins/base/build.gradle.kts +++ b/plugins/base/build.gradle.kts @@ -6,6 +6,11 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) + val coroutines_version: String by project implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") @@ -26,6 +31,9 @@ dependencies { implementation("org.jetbrains.kotlinx:kotlinx-html-jvm:$kotlinx_html_version") testImplementation(project(":kotlin-analysis")) + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } val projectDistDir = project(":plugins:base:frontend").file("dist") diff --git a/plugins/gfm/build.gradle.kts b/plugins/gfm/build.gradle.kts index 5bf70d8976..f3bf71bd61 100644 --- a/plugins/gfm/build.gradle.kts +++ b/plugins/gfm/build.gradle.kts @@ -6,11 +6,19 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) testImplementation(project(":plugins:base")) testImplementation(project(":plugins:base:base-test-utils")) val jackson_version: String by project implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jackson_version") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("gfmPlugin") { diff --git a/plugins/gfm/gfm-template-processing/build.gradle.kts b/plugins/gfm/gfm-template-processing/build.gradle.kts index 445f3e6e46..450b33a2e3 100644 --- a/plugins/gfm/gfm-template-processing/build.gradle.kts +++ b/plugins/gfm/gfm-template-processing/build.gradle.kts @@ -6,6 +6,10 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) implementation(project(":plugins:gfm")) implementation(project(":plugins:all-modules-page")) @@ -13,6 +17,10 @@ dependencies { val coroutines_version: String by project implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("dokkaGfmTemplateProcessing") { diff --git a/plugins/javadoc/build.gradle.kts b/plugins/javadoc/build.gradle.kts index 31cc623ee3..c41256cad8 100644 --- a/plugins/javadoc/build.gradle.kts +++ b/plugins/javadoc/build.gradle.kts @@ -6,6 +6,10 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) compileOnly(project(":kotlin-analysis")) implementation("com.soywiz.korlibs.korte:korte-jvm:2.7.0") implementation(project(":plugins:base")) @@ -20,6 +24,10 @@ dependencies { val jsoup_version: String by project testImplementation("org.jsoup:jsoup:$jsoup_version") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("javadocPlugin") { diff --git a/plugins/jekyll/build.gradle.kts b/plugins/jekyll/build.gradle.kts index 0c25484142..483c58b3dd 100644 --- a/plugins/jekyll/build.gradle.kts +++ b/plugins/jekyll/build.gradle.kts @@ -6,8 +6,16 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) implementation(project(":plugins:gfm")) + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("jekyllPlugin") { diff --git a/plugins/jekyll/jekyll-template-processing/build.gradle.kts b/plugins/jekyll/jekyll-template-processing/build.gradle.kts index db68e639a3..9845a993dd 100644 --- a/plugins/jekyll/jekyll-template-processing/build.gradle.kts +++ b/plugins/jekyll/jekyll-template-processing/build.gradle.kts @@ -6,6 +6,11 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) + implementation(project(":plugins:base")) implementation(project(":plugins:jekyll")) implementation(project(":plugins:all-modules-page")) @@ -15,6 +20,10 @@ dependencies { val coroutines_version: String by project implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutines_version") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("dokkaJekyllTemplateProcessing") { diff --git a/plugins/kotlin-as-java/build.gradle.kts b/plugins/kotlin-as-java/build.gradle.kts index 2819c152fd..1b759efbd6 100644 --- a/plugins/kotlin-as-java/build.gradle.kts +++ b/plugins/kotlin-as-java/build.gradle.kts @@ -6,6 +6,10 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) compileOnly(project(":kotlin-analysis")) implementation(project(":plugins:base")) testImplementation(project(":plugins:base")) @@ -14,6 +18,10 @@ dependencies { val jsoup_version: String by project testImplementation("org.jsoup:jsoup:$jsoup_version") testImplementation(project(":kotlin-analysis")) + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("kotlinAsJavaPlugin") { diff --git a/plugins/mathjax/build.gradle.kts b/plugins/mathjax/build.gradle.kts index cda8758bfe..07ac053be4 100644 --- a/plugins/mathjax/build.gradle.kts +++ b/plugins/mathjax/build.gradle.kts @@ -6,6 +6,10 @@ plugins { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) val jsoup_version: String by project @@ -14,6 +18,10 @@ dependencies { testImplementation(project(":core:content-matcher-test-utils")) testImplementation(kotlin("test-junit")) testImplementation(project(":kotlin-analysis")) + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } registerDokkaArtifactPublication("mathjaxPlugin") { diff --git a/plugins/templating/build.gradle.kts b/plugins/templating/build.gradle.kts index bc4ebd3e62..73215d2c07 100644 --- a/plugins/templating/build.gradle.kts +++ b/plugins/templating/build.gradle.kts @@ -10,6 +10,10 @@ registerDokkaArtifactPublication("templating-plugin") { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) val coroutines_version: String by project @@ -22,4 +26,8 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") testImplementation(project(":plugins:base:base-test-utils")) + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } diff --git a/plugins/versioning/build.gradle.kts b/plugins/versioning/build.gradle.kts index eac4977b14..4c5148165f 100644 --- a/plugins/versioning/build.gradle.kts +++ b/plugins/versioning/build.gradle.kts @@ -10,6 +10,10 @@ registerDokkaArtifactPublication("versioning-plugin") { } dependencies { + compileOnly(project(":core")) + implementation(kotlin("stdlib-jdk8")) + implementation(kotlin("stdlib")) + implementation(kotlin("reflect")) implementation(project(":plugins:base")) implementation(project(":plugins:templating")) @@ -23,4 +27,8 @@ dependencies { val jsoup_version: String by project implementation("org.jsoup:jsoup:$jsoup_version") implementation("org.apache.maven:maven-artifact:3.8.5") + + testImplementation(project(":test-utils")) + testImplementation(project(":core:test-api")) + testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") } From 63a7da43ec35d4efc9356ddbf0db61a1089429e3 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 22:53:04 +0200 Subject: [PATCH 09/58] re-add project(":integration-tests") dependency to integration-tests subprojects --- integration-tests/cli/build.gradle.kts | 1 + integration-tests/gradle/build.gradle.kts | 1 + integration-tests/maven/build.gradle.kts | 1 + 3 files changed, 3 insertions(+) diff --git a/integration-tests/cli/build.gradle.kts b/integration-tests/cli/build.gradle.kts index 39e32b95dd..71d36a9b03 100644 --- a/integration-tests/cli/build.gradle.kts +++ b/integration-tests/cli/build.gradle.kts @@ -12,6 +12,7 @@ evaluationDependsOn(":plugins:base") dependencies { implementation(kotlin("stdlib")) implementation(kotlin("test-junit")) + implementation(project(":integration-tests")) } /* Create a fat base plugin jar for cli tests */ diff --git a/integration-tests/gradle/build.gradle.kts b/integration-tests/gradle/build.gradle.kts index 143d8cef99..7a649f172a 100644 --- a/integration-tests/gradle/build.gradle.kts +++ b/integration-tests/gradle/build.gradle.kts @@ -5,6 +5,7 @@ plugins { } dependencies { + implementation(project(":integration-tests")) implementation(kotlin("stdlib")) implementation(kotlin("test-junit")) implementation(gradleTestKit()) diff --git a/integration-tests/maven/build.gradle.kts b/integration-tests/maven/build.gradle.kts index 082a026634..0a2cb7c468 100644 --- a/integration-tests/maven/build.gradle.kts +++ b/integration-tests/maven/build.gradle.kts @@ -8,6 +8,7 @@ plugins { evaluationDependsOn(":runners:maven-plugin") dependencies { + implementation(project(":integration-tests")) implementation(kotlin("stdlib")) implementation(kotlin("test-junit")) } From 766af5547b3ed9e00d312b7cccb570d91319b129 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 13 Oct 2022 23:16:14 +0200 Subject: [PATCH 10/58] fix dokka-integration-test integrationTest configurations --- .../conventions/dokka-integration-test.gradle.kts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts index c6a05523cb..ce3b5eeead 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts @@ -12,13 +12,20 @@ val integrationTestSourceSet = sourceSets.create("integrationTest") { runtimeClasspath += sourceSets.main.get().output } +val integrationTestImplementation by configurations.getting { + extendsFrom(configurations.implementation.get()) +} + +val integrationTestRuntimeOnly by configurations.getting { + extendsFrom(configurations.runtimeOnly.get()) +} + val integrationTest by tasks.registering(Test::class) { maxHeapSize = "2G" description = "Runs integration tests." group = "verification" useJUnit() - testClassesDirs = integrationTestSourceSet.output.classesDirs classpath = integrationTestSourceSet.runtimeClasspath From 770a27b5fda7adbdf53bfbca2bbae7b69e483ee6 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 11:58:59 +0200 Subject: [PATCH 11/58] replace println with logger.lifecycle --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4918b0355f..09884deb6d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ group = "org.jetbrains.dokka" version = dokka_version -println("Publication version: $dokka_version") +logger.lifecycle("Publication version: $dokka_version") tasks.register("validatePublications") nexusPublishing { From ae0f4e1e6f3911fa14cba3a15384ea15a827dd68 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:07:52 +0200 Subject: [PATCH 12/58] update description for base plugin (else it provides a default description, which is specific to the convention plugin, not for implementations) --- .../src/main/kotlin/org/jetbrains/conventions/base.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts index 95a5fa21b4..c4352d1664 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts @@ -4,7 +4,7 @@ plugins { base } -description = "common Gradle configuration that should be applied to all projets" +// common Gradle configuration that should be applied to all projects if (project != rootProject) { project.group = rootProject.group From bba37c7e57a2d481e7556ac3d67683f7194eb13c Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:08:01 +0200 Subject: [PATCH 13/58] rm commented out code --- integration-tests/build.gradle.kts | 58 ------------------------------ plugins/build.gradle.kts | 35 ------------------ 2 files changed, 93 deletions(-) delete mode 100644 plugins/build.gradle.kts diff --git a/integration-tests/build.gradle.kts b/integration-tests/build.gradle.kts index 2e37a1450a..80c07b374a 100644 --- a/integration-tests/build.gradle.kts +++ b/integration-tests/build.gradle.kts @@ -1,65 +1,7 @@ -//import org.gradle.api.tasks.testing.logging.TestExceptionFormat -//import org.gradle.api.tasks.testing.logging.TestLogEvent - plugins { org.jetbrains.conventions.`kotlin-jvm` } -//subprojects { -// sourceSets { -// create("integrationTest") { -// compileClasspath += sourceSets.main.get().output -// runtimeClasspath += sourceSets.main.get().output -// } -// } -// -// configurations.getByName("integrationTestImplementation") { -// extendsFrom(configurations.implementation.get()) -// } -// -// configurations.getByName("integrationTestRuntimeOnly") { -// extendsFrom(configurations.runtimeOnly.get()) -// } -// -// dependencies { -// implementation(project(":integration-tests")) -// } -// -// val integrationTest by tasks.register("integrationTest") { -// maxHeapSize = "2G" -// description = "Runs integration tests." -// group = "verification" -// useJUnit() -// -// -// testClassesDirs = sourceSets["integrationTest"].output.classesDirs -// classpath = sourceSets["integrationTest"].runtimeClasspath -// -// setForkEvery(1) -// project.properties["dokka_integration_test_parallelism"]?.toString()?.toIntOrNull()?.let { parallelism -> -// maxParallelForks = parallelism -// } -// environment( -// "isExhaustive", -// project.properties["dokka_integration_test_is_exhaustive"]?.toString()?.toBoolean() -// ?: System.getenv("DOKKA_INTEGRATION_TEST_IS_EXHAUSTIVE")?.toBoolean() -// ?: false.toString() -// ) -// -// testLogging { -// exceptionFormat = TestExceptionFormat.FULL -// events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) -// showExceptions = true -// showCauses = true -// showStackTraces = true -// } -// } -// -// tasks.check { -// dependsOn(integrationTest) -// } -//} - dependencies { implementation(kotlin("stdlib")) api(project(":test-utils")) diff --git a/plugins/build.gradle.kts b/plugins/build.gradle.kts deleted file mode 100644 index d26b620df9..0000000000 --- a/plugins/build.gradle.kts +++ /dev/null @@ -1,35 +0,0 @@ -//import org.gradle.api.tasks.testing.logging.TestExceptionFormat -//import org.gradle.api.tasks.testing.logging.TestLogEvent -// -//plugins { -// org.jetbrains.conventions.`kotlin-jvm` -// org.jetbrains.conventions.`maven-publish` -//} -// -//subprojects { -// apply { -// plugin("maven-publish") -// } -// -// dependencies { -// compileOnly(project(":core")) -// implementation(kotlin("stdlib-jdk8")) -// implementation(kotlin("stdlib")) -// implementation(kotlin("reflect")) -// -// testImplementation(project(":test-utils")) -// testImplementation(project(":core:test-api")) -// testImplementation("org.junit.jupiter:junit-jupiter:5.6.0") -// } -// -// tasks.test { -// useJUnitPlatform() -// testLogging { -// exceptionFormat = TestExceptionFormat.FULL -// events(TestLogEvent.SKIPPED, TestLogEvent.FAILED) -// showExceptions = true -// showCauses = true -// showStackTraces = true -// } -// } -//} From 549c11c112d491c28684e651082a4d5f493c0846 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:31:13 +0200 Subject: [PATCH 14/58] update test code after applying kotlin-dsl plugin --- .../gradle/AbstractDokkaParentTaskTest.kt | 6 ++-- .../ConfigureWithKotlinSourceSetGistTest.kt | 6 ++-- .../dokka/gradle/DokkaCollectorTaskTest.kt | 28 +++++++++---------- .../gradle/DokkaConfigurationJsonTest.kt | 26 ++++++++--------- .../DokkaConfigurationSerializableTest.kt | 26 ++++++++--------- .../dokka/gradle/DokkaMultiModuleTaskTest.kt | 16 +++++------ .../jetbrains/dokka/gradle/DokkaTaskTest.kt | 6 ++-- .../gradle/GradleDokkaSourceSetBuilderTest.kt | 10 +++---- .../KotlinDslDokkaTaskConfigurationTest.kt | 8 +++--- .../dokka/gradle/KotlinSourceSetGistTest.kt | 4 +-- 10 files changed, 65 insertions(+), 71 deletions(-) diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt index f0e0563711..19db5ae205 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt @@ -18,8 +18,8 @@ class AbstractDokkaParentTaskTest { private val subSubproject0 = ProjectBuilder.builder().withName("subSubproject0").withParent(subproject0).build() init { - rootProject.subprojects { project -> - project.tasks.create("dokkaTask") + rootProject.subprojects { + tasks.create("dokkaTask") } } @@ -196,5 +196,3 @@ internal open class TestDokkaParentTask : AbstractDokkaParentTask() { } private val Project.dokkaTask: DokkaTask get() = tasks.getByName("dokkaTask") - - diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt index c06a3992ba..c1e0c85b66 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt @@ -95,9 +95,9 @@ class ConfigureWithKotlinSourceSetGistTest { mainSourceSet.kotlin.sourceDirectories.elements.get().map { it.asFile }.forEach { it.mkdirs() } /* Make sure to remove dependencies that cannot be resolved during test */ - project.configurations.configureEach { configuration -> - configuration.withDependencies { dependencies -> - dependencies.removeIf { dependency -> dependency !is FileCollectionDependency } + project.configurations.configureEach { + withDependencies { + removeIf { dependency -> dependency !is FileCollectionDependency } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt index 6e9bef38b6..e4f90c5a74 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt @@ -19,25 +19,25 @@ class DokkaCollectorTaskTest { val childProject = ProjectBuilder.builder().withParent(rootProject).build() childProject.plugins.apply("org.jetbrains.kotlin.jvm") - rootProject.allprojects { project -> - project.plugins.apply("org.jetbrains.dokka") - project.tasks.withType().configureEach { task -> - task.plugins.withDependencies { dependencies -> dependencies.clear() } + rootProject.allprojects { + plugins.apply("org.jetbrains.dokka") + tasks.withType().configureEach { + plugins.withDependencies { clear() } } - project.tasks.withType().configureEach { task -> - task.dokkaSourceSets.configureEach { sourceSet -> - sourceSet.classpath.setFrom(emptyList()) + tasks.withType().configureEach { + dokkaSourceSets.configureEach { + classpath.setFrom(emptyList()) } } } val collectorTasks = rootProject.tasks.withType() - collectorTasks.configureEach { task -> - task.moduleName by "custom Module Name" - task.outputDirectory by File("customOutputDirectory") - task.cacheRoot by File("customCacheRoot") - task.failOnWarning by true - task.offlineMode by true + collectorTasks.configureEach { + moduleName by "custom Module Name" + outputDirectory by File("customOutputDirectory") + cacheRoot by File("customCacheRoot") + failOnWarning by true + offlineMode by true } assertTrue(collectorTasks.isNotEmpty(), "Expected at least one collector task") @@ -68,7 +68,7 @@ class DokkaCollectorTaskTest { fun `with no child tasks throws DokkaException`() { val project = ProjectBuilder.builder().build() val collectorTask = project.tasks.create("collector") - project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } + project.configurations.all { withDependencies { clear() } } assertFailsWith { collectorTask.generateDocumentation() } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt index 877d3b37a7..2f17cae42b 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt @@ -17,9 +17,7 @@ class DokkaConfigurationJsonTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") val dokkaTask = project.tasks.withType().first() - dokkaTask.plugins.withDependencies { dependencies -> - dependencies.clear() - } + dokkaTask.plugins.withDependencies { clear() } dokkaTask.apply { this.failOnWarning by true this.offlineMode by true @@ -27,19 +25,19 @@ class DokkaConfigurationJsonTest { this.cacheRoot by File("customCacheRoot") this.pluginsConfiguration.add(PluginConfigurationImpl("A", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value1" } """)) this.pluginsConfiguration.add(PluginConfigurationImpl("B", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value2" } """)) - this.dokkaSourceSets.create("main") { sourceSet -> - sourceSet.displayName by "customSourceSetDisplayName" - sourceSet.reportUndocumented by true + this.dokkaSourceSets.create("main") { + displayName by "customSourceSetDisplayName" + reportUndocumented by true - sourceSet.externalDocumentationLink { link -> - link.packageListUrl by URL("http://some.url") - link.url by URL("http://some.other.url") + externalDocumentationLink { + packageListUrl by URL("http://some.url") + url by URL("http://some.other.url") } - sourceSet.perPackageOption { packageOption -> - packageOption.includeNonPublic by true - packageOption.reportUndocumented by true - packageOption.skipDeprecated by true - packageOption.documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) + perPackageOption { + includeNonPublic by true + reportUndocumented by true + skipDeprecated by true + documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt index 811f7736b5..bcd7cd4e86 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt @@ -25,9 +25,7 @@ class DokkaConfigurationSerializableTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") val dokkaTask = project.tasks.withType().first() - dokkaTask.plugins.withDependencies { dependencies -> - dependencies.clear() - } + dokkaTask.plugins.withDependencies { clear() } dokkaTask.apply { this.failOnWarning by true this.offlineMode by true @@ -35,20 +33,20 @@ class DokkaConfigurationSerializableTest { this.cacheRoot by File("customCacheRoot") this.pluginsConfiguration.add(PluginConfigurationImpl("A", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value1" } """)) this.pluginsConfiguration.add(PluginConfigurationImpl("B", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value2" } """)) - this.dokkaSourceSets.create("main") { sourceSet -> - sourceSet.displayName by "customSourceSetDisplayName" - sourceSet.reportUndocumented by true + this.dokkaSourceSets.create("main") { + displayName by "customSourceSetDisplayName" + reportUndocumented by true - sourceSet.externalDocumentationLink { link -> - link.packageListUrl by URL("http://some.url") - link.url by URL("http://some.other.url") + externalDocumentationLink { + packageListUrl by URL("http://some.url") + url by URL("http://some.other.url") } - sourceSet.perPackageOption { packageOption -> - packageOption.includeNonPublic by true - packageOption.reportUndocumented by true - packageOption.skipDeprecated by true - packageOption.documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) + perPackageOption { + includeNonPublic by true + reportUndocumented by true + skipDeprecated by true + documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt index 6e851326e0..c817e6b4b7 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt @@ -26,9 +26,9 @@ class DokkaMultiModuleTaskTest { } init { - rootProject.allprojects { project -> - project.tasks.withType().configureEach { task -> - task.plugins.withDependencies { dependencies -> dependencies.clear() } + rootProject.allprojects { + tasks.withType().configureEach { + plugins.withDependencies { clear() } } } } @@ -56,7 +56,7 @@ class DokkaMultiModuleTaskTest { dokkaSourceSets.create("main") dokkaSourceSets.create("test") dokkaSourceSets.configureEach { - it.includes.from(include1, include2) + includes.from(include1, include2) } } @@ -135,7 +135,7 @@ class DokkaMultiModuleTaskTest { fun `multimodule task with no child tasks throws DokkaException`() { val project = ProjectBuilder.builder().build() val multimodule = project.tasks.create("multimodule") - project.configurations.configureEach { it.withDependencies { it.clear() } } + project.configurations.configureEach { withDependencies { clear() } } assertFailsWith { multimodule.generateDocumentation() } } @@ -147,17 +147,17 @@ class DokkaMultiModuleTaskTest { childDokkaTask.apply { dokkaSourceSets.create("main") { - it.includes.from(childDokkaTaskInclude1, childDokkaTaskInclude2) + includes.from(childDokkaTaskInclude1, childDokkaTaskInclude2) } dokkaSourceSets.create("main2") { - it.includes.from(childDokkaTaskInclude3) + includes.from(childDokkaTaskInclude3) } } val secondChildDokkaTaskInclude = childProject.file("include4") val secondChildDokkaTask = childProject.tasks.create("secondChildDokkaTask") { dokkaSourceSets.create("main") { - it.includes.from(secondChildDokkaTaskInclude) + includes.from(secondChildDokkaTaskInclude) } } multiModuleTask.addChildTask(secondChildDokkaTask) diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt index 546a59dbdd..651cbc93ac 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt @@ -11,12 +11,12 @@ class DokkaTaskTest { fun `no suppressed source sets are present after in built configuration`() { val project = ProjectBuilder.builder().build() val task = project.tasks.create("dokkaTask") - project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } + project.configurations.all { withDependencies { clear() } } task.dokkaSourceSets.register("main") task.dokkaSourceSets.register("jvm") task.dokkaSourceSets.register("test") { - it.suppress by true + suppress by true } assertEquals( @@ -30,7 +30,7 @@ class DokkaTaskTest { fun `module version is not present if not specified`(){ val project = ProjectBuilder.builder().build() val task = project.tasks.create("dokkaTask") - project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } + project.configurations.all { withDependencies { clear() } } task.dokkaSourceSets.register("main") assertNull(task.buildDokkaConfiguration().moduleVersion) diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt index 9babeefdcd..0247a82f92 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt @@ -226,9 +226,9 @@ class GradleDokkaSourceSetBuilderTest { }) sourceSet.sourceLink { - it.remoteLineSuffix by "ls2" - it.localDirectory by project.file("p2") - it.remoteUrl by URL("https://u2") + remoteLineSuffix by "ls2" + localDirectory by project.file("p2") + remoteUrl by URL("https://u2") } sourceSet.sourceLink(project.closureOf { @@ -270,7 +270,7 @@ class GradleDokkaSourceSetBuilderTest { }) sourceSet.perPackageOption { - it.matchingRegex by "p2.*" + matchingRegex by "p2.*" } sourceSet.perPackageOption(project.closureOf { @@ -312,7 +312,7 @@ class GradleDokkaSourceSetBuilderTest { ) sourceSet.externalDocumentationLink { - it.url by URL("https://u2") + url by URL("https://u2") } sourceSet.externalDocumentationLink(project.closureOf { diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt index 9c788a0169..89d1b6dd4a 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt @@ -14,7 +14,7 @@ class KotlinDslDokkaTaskConfigurationTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") project.tasks.withType().configureEach { - it.outputDirectory by File("test") + outputDirectory by File("test") } project.tasks.withType(DokkaTask::class.java).forEach { dokkaTask -> @@ -31,7 +31,7 @@ class KotlinDslDokkaTaskConfigurationTest { dokkaTask.dokkaSourceSets.run { val commonMain = create("commonMain") val jvmMain = create("jvmMain") { - it.dependsOn("commonMain") + dependsOn("commonMain") } assertEquals( @@ -65,7 +65,7 @@ class KotlinDslDokkaTaskConfigurationTest { dokkaSourceSets.run { val commonMain = create("commonMain") val jvmMain = create("jvmMain") { - it.dependsOn(commonMain) + dependsOn(commonMain) } assertEquals( @@ -86,7 +86,7 @@ class KotlinDslDokkaTaskConfigurationTest { project.tasks.withType(DokkaTask::class.java).first().apply { dokkaSourceSets.run { val special = create("special") { - it.dependsOn(kotlin.sourceSets.getByName("main")) + dependsOn(kotlin.sourceSets.getByName("main")) } assertEquals( diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt index bf3da6efda..dcb537dd5f 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt @@ -117,8 +117,8 @@ class KotlinSourceSetGistTest { /* Only work with file dependencies */ project.configurations.forEach { configuration -> - configuration.withDependencies { dependencies -> - dependencies.removeIf { dependency -> + configuration.withDependencies { + removeIf { dependency -> dependency !is FileCollectionDependency } } From 9bfedff68b653e3ff2fa5eceb4eed31c3b515a41 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:31:42 +0200 Subject: [PATCH 15/58] tidy up gradle-plugin build.gradle.kts (kotlin-dsl plugin will auto-add dependencies) --- runners/gradle-plugin/build.gradle.kts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index e94f9c8e52..83b1bb4f06 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -8,19 +8,13 @@ plugins { id("com.gradle.plugin-publish")// version "0.20.0" } -//repositories { -// google() -//} - dependencies { api(project(":core")) compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin") compileOnly("com.android.tools.build:gradle:4.0.1") -// compileOnly(gradleKotlinDsl()) testImplementation(project(":test-utils")) -// testImplementation(gradleKotlinDsl()) testImplementation("org.jetbrains.kotlin:kotlin-gradle-plugin") testImplementation("com.android.tools.build:gradle:4.0.1") @@ -33,7 +27,7 @@ dependencies { ) } -// Gradle will put its own version of the stdlib in the classpath, do not pull our own we will end up with +// Gradle will put its own version of the stdlib in the classpath, so not pull our own we will end up with // warnings like 'Runtime JAR files in the classpath should have the same version' configurations.api.configure { excludeGradleCommonDependencies() From 54e68e360ba1ed9190f4a7241296b1dcb208b36f Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:33:41 +0200 Subject: [PATCH 16/58] add repositoriesMode --- settings.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index d1b27c504f..040cd1797e 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -57,6 +57,8 @@ gradleEnterprise { @Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + repositories { mavenCentral() google() From a1cfab1206891482a6e5fdf0903a39a25f359867 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:42:21 +0200 Subject: [PATCH 17/58] move repositories to settings.gradle.kts --- kotlin-analysis/intellij-dependency/build.gradle.kts | 10 ---------- settings.gradle.kts | 7 +++++++ 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/kotlin-analysis/intellij-dependency/build.gradle.kts b/kotlin-analysis/intellij-dependency/build.gradle.kts index d9eaad49de..cb2ee4540c 100644 --- a/kotlin-analysis/intellij-dependency/build.gradle.kts +++ b/kotlin-analysis/intellij-dependency/build.gradle.kts @@ -7,16 +7,6 @@ plugins { id("com.github.johnrengelman.shadow") } -repositories { - mavenCentral() - maven(url = "https://www.jetbrains.com/intellij-repository/snapshots") - maven(url = "https://www.jetbrains.com/intellij-repository/releases") - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide") - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies") - maven("https://cache-redirector.jetbrains.com/intellij-dependencies") - maven("https://www.myget.org/F/rd-snapshots/maven/") -} - val intellijCore: Configuration by configurations.creating fun intellijCoreAnalysis() = zipTree(intellijCore.singleFile).matching { diff --git a/settings.gradle.kts b/settings.gradle.kts index 040cd1797e..0029206803 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -62,6 +62,13 @@ dependencyResolutionManagement { repositories { mavenCentral() google() + + maven("https://www.jetbrains.com/intellij-repository/snapshots") + maven("https://www.jetbrains.com/intellij-repository/releases") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies") + maven("https://cache-redirector.jetbrains.com/intellij-dependencies") + maven("https://www.myget.org/F/rd-snapshots/maven/") } pluginManagement { From d2e05d08f786cb0aba1876cc540b0536254fb25f Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:51:11 +0200 Subject: [PATCH 18/58] Declare the Node.js & Yarn download repositories --- settings.gradle.kts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 0029206803..e9ffe30652 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -63,6 +63,20 @@ dependencyResolutionManagement { mavenCentral() google() + // Declare the Node.js & Yarn download repositories + ivy("https://nodejs.org/dist/") { + name = "Node Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") } + metadataSources { artifact() } + content { includeModule("org.nodejs", "node") } + } + ivy("https://github.com/yarnpkg/yarn/releases/download") { + name = "Yarn Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]).[ext]") } + metadataSources { artifact() } + content { includeModule("com.yarnpkg", "yarn") } + } + maven("https://www.jetbrains.com/intellij-repository/snapshots") maven("https://www.jetbrains.com/intellij-repository/releases") maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide") From 572494c8f8e64969b9f22850032698b7318b9c7d Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 18 Oct 2022 16:08:01 +0200 Subject: [PATCH 19/58] [gradle plugin] revert applying kotlin-dsl plugin, do that in #2702 --- runners/gradle-plugin/build.gradle.kts | 6 ++-- .../dokka/gradle/AbstractDokkaLeafTask.kt | 14 +++++----- .../dokka/gradle/gradleConfigurations.kt | 4 +-- .../gradle/AbstractDokkaParentTaskTest.kt | 6 ++-- .../ConfigureWithKotlinSourceSetGistTest.kt | 6 ++-- .../dokka/gradle/DokkaCollectorTaskTest.kt | 28 +++++++++---------- .../gradle/DokkaConfigurationJsonTest.kt | 26 +++++++++-------- .../DokkaConfigurationSerializableTest.kt | 26 +++++++++-------- .../dokka/gradle/DokkaMultiModuleTaskTest.kt | 16 +++++------ .../jetbrains/dokka/gradle/DokkaTaskTest.kt | 6 ++-- .../gradle/GradleDokkaSourceSetBuilderTest.kt | 10 +++---- .../KotlinDslDokkaTaskConfigurationTest.kt | 8 +++--- .../dokka/gradle/KotlinSourceSetGistTest.kt | 4 +-- 13 files changed, 83 insertions(+), 77 deletions(-) diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 83b1bb4f06..485f521c01 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -3,9 +3,8 @@ import org.jetbrains.* plugins { `java-gradle-plugin` - `kotlin-dsl` org.jetbrains.conventions.`maven-publish` - id("com.gradle.plugin-publish")// version "0.20.0" + id("com.gradle.plugin-publish") } dependencies { @@ -13,8 +12,9 @@ dependencies { compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin") compileOnly("com.android.tools.build:gradle:4.0.1") - + compileOnly(gradleKotlinDsl()) testImplementation(project(":test-utils")) + testImplementation(gradleKotlinDsl()) testImplementation("org.jetbrains.kotlin:kotlin-gradle-plugin") testImplementation("com.android.tools.build:gradle:4.0.1") diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt index 68e117e980..412695ec74 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaLeafTask.kt @@ -4,7 +4,6 @@ import org.gradle.api.NamedDomainObjectContainer import org.gradle.api.internal.plugins.DslObject import org.gradle.api.tasks.Internal import org.gradle.api.tasks.Nested -import org.gradle.kotlin.dsl.container import org.gradle.work.DisableCachingByDefault @DisableCachingByDefault(because = "Abstract super-class, not to be instantiated directly") @@ -12,14 +11,15 @@ abstract class AbstractDokkaLeafTask : AbstractDokkaTask() { @get:Internal val dokkaSourceSets: NamedDomainObjectContainer = - project.container(GradleDokkaSourceSetBuilder::class, gradleDokkaSourceSetBuilderFactory()).also { container -> - DslObject(this).extensions.add("dokkaSourceSets", container) - project.kotlinOrNull?.sourceSets?.all sourceSet@{ - container.register(name) { - configureWithKotlinSourceSet(this@sourceSet) + project.container(GradleDokkaSourceSetBuilder::class.java, gradleDokkaSourceSetBuilderFactory()) + .also { container -> + DslObject(this).extensions.add("dokkaSourceSets", container) + project.kotlinOrNull?.sourceSets?.all { kotlinSourceSet -> + container.register(kotlinSourceSet.name) { dokkaSourceSet -> + dokkaSourceSet.configureWithKotlinSourceSet(kotlinSourceSet) + } } } - } /** * Only contains source sets that are marked with `isDocumented`. diff --git a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt index 3663e3e91e..7b924b7588 100644 --- a/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt +++ b/runners/gradle-plugin/src/main/kotlin/org/jetbrains/dokka/gradle/gradleConfigurations.kt @@ -35,8 +35,8 @@ internal fun Project.maybeCreateDokkaRuntimeConfiguration(dokkaTaskName: String) extendsFrom(maybeCreateDokkaDefaultRuntimeConfiguration()) attributes.attribute(Usage.USAGE_ATTRIBUTE, project.objects.named(Usage::class.java, "java-runtime")) isCanBeConsumed = false - defaultDependencies { - add(project.dokkaArtifacts.dokkaCore) + defaultDependencies { dependencies -> + dependencies.add(project.dokkaArtifacts.dokkaCore) } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt index 19db5ae205..f0e0563711 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/AbstractDokkaParentTaskTest.kt @@ -18,8 +18,8 @@ class AbstractDokkaParentTaskTest { private val subSubproject0 = ProjectBuilder.builder().withName("subSubproject0").withParent(subproject0).build() init { - rootProject.subprojects { - tasks.create("dokkaTask") + rootProject.subprojects { project -> + project.tasks.create("dokkaTask") } } @@ -196,3 +196,5 @@ internal open class TestDokkaParentTask : AbstractDokkaParentTask() { } private val Project.dokkaTask: DokkaTask get() = tasks.getByName("dokkaTask") + + diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt index c1e0c85b66..c06a3992ba 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/ConfigureWithKotlinSourceSetGistTest.kt @@ -95,9 +95,9 @@ class ConfigureWithKotlinSourceSetGistTest { mainSourceSet.kotlin.sourceDirectories.elements.get().map { it.asFile }.forEach { it.mkdirs() } /* Make sure to remove dependencies that cannot be resolved during test */ - project.configurations.configureEach { - withDependencies { - removeIf { dependency -> dependency !is FileCollectionDependency } + project.configurations.configureEach { configuration -> + configuration.withDependencies { dependencies -> + dependencies.removeIf { dependency -> dependency !is FileCollectionDependency } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt index e4f90c5a74..6e9bef38b6 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaCollectorTaskTest.kt @@ -19,25 +19,25 @@ class DokkaCollectorTaskTest { val childProject = ProjectBuilder.builder().withParent(rootProject).build() childProject.plugins.apply("org.jetbrains.kotlin.jvm") - rootProject.allprojects { - plugins.apply("org.jetbrains.dokka") - tasks.withType().configureEach { - plugins.withDependencies { clear() } + rootProject.allprojects { project -> + project.plugins.apply("org.jetbrains.dokka") + project.tasks.withType().configureEach { task -> + task.plugins.withDependencies { dependencies -> dependencies.clear() } } - tasks.withType().configureEach { - dokkaSourceSets.configureEach { - classpath.setFrom(emptyList()) + project.tasks.withType().configureEach { task -> + task.dokkaSourceSets.configureEach { sourceSet -> + sourceSet.classpath.setFrom(emptyList()) } } } val collectorTasks = rootProject.tasks.withType() - collectorTasks.configureEach { - moduleName by "custom Module Name" - outputDirectory by File("customOutputDirectory") - cacheRoot by File("customCacheRoot") - failOnWarning by true - offlineMode by true + collectorTasks.configureEach { task -> + task.moduleName by "custom Module Name" + task.outputDirectory by File("customOutputDirectory") + task.cacheRoot by File("customCacheRoot") + task.failOnWarning by true + task.offlineMode by true } assertTrue(collectorTasks.isNotEmpty(), "Expected at least one collector task") @@ -68,7 +68,7 @@ class DokkaCollectorTaskTest { fun `with no child tasks throws DokkaException`() { val project = ProjectBuilder.builder().build() val collectorTask = project.tasks.create("collector") - project.configurations.all { withDependencies { clear() } } + project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } assertFailsWith { collectorTask.generateDocumentation() } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt index 2f17cae42b..877d3b37a7 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationJsonTest.kt @@ -17,7 +17,9 @@ class DokkaConfigurationJsonTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") val dokkaTask = project.tasks.withType().first() - dokkaTask.plugins.withDependencies { clear() } + dokkaTask.plugins.withDependencies { dependencies -> + dependencies.clear() + } dokkaTask.apply { this.failOnWarning by true this.offlineMode by true @@ -25,19 +27,19 @@ class DokkaConfigurationJsonTest { this.cacheRoot by File("customCacheRoot") this.pluginsConfiguration.add(PluginConfigurationImpl("A", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value1" } """)) this.pluginsConfiguration.add(PluginConfigurationImpl("B", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value2" } """)) - this.dokkaSourceSets.create("main") { - displayName by "customSourceSetDisplayName" - reportUndocumented by true + this.dokkaSourceSets.create("main") { sourceSet -> + sourceSet.displayName by "customSourceSetDisplayName" + sourceSet.reportUndocumented by true - externalDocumentationLink { - packageListUrl by URL("http://some.url") - url by URL("http://some.other.url") + sourceSet.externalDocumentationLink { link -> + link.packageListUrl by URL("http://some.url") + link.url by URL("http://some.other.url") } - perPackageOption { - includeNonPublic by true - reportUndocumented by true - skipDeprecated by true - documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) + sourceSet.perPackageOption { packageOption -> + packageOption.includeNonPublic by true + packageOption.reportUndocumented by true + packageOption.skipDeprecated by true + packageOption.documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt index bcd7cd4e86..811f7736b5 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaConfigurationSerializableTest.kt @@ -25,7 +25,9 @@ class DokkaConfigurationSerializableTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") val dokkaTask = project.tasks.withType().first() - dokkaTask.plugins.withDependencies { clear() } + dokkaTask.plugins.withDependencies { dependencies -> + dependencies.clear() + } dokkaTask.apply { this.failOnWarning by true this.offlineMode by true @@ -33,20 +35,20 @@ class DokkaConfigurationSerializableTest { this.cacheRoot by File("customCacheRoot") this.pluginsConfiguration.add(PluginConfigurationImpl("A", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value1" } """)) this.pluginsConfiguration.add(PluginConfigurationImpl("B", DokkaConfiguration.SerializationFormat.JSON, """ { "key" : "value2" } """)) - this.dokkaSourceSets.create("main") { - displayName by "customSourceSetDisplayName" - reportUndocumented by true + this.dokkaSourceSets.create("main") { sourceSet -> + sourceSet.displayName by "customSourceSetDisplayName" + sourceSet.reportUndocumented by true - externalDocumentationLink { - packageListUrl by URL("http://some.url") - url by URL("http://some.other.url") + sourceSet.externalDocumentationLink { link -> + link.packageListUrl by URL("http://some.url") + link.url by URL("http://some.other.url") } - perPackageOption { - includeNonPublic by true - reportUndocumented by true - skipDeprecated by true - documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) + sourceSet.perPackageOption { packageOption -> + packageOption.includeNonPublic by true + packageOption.reportUndocumented by true + packageOption.skipDeprecated by true + packageOption.documentedVisibilities by setOf(DokkaConfiguration.Visibility.PRIVATE) } } } diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt index c817e6b4b7..6e851326e0 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaMultiModuleTaskTest.kt @@ -26,9 +26,9 @@ class DokkaMultiModuleTaskTest { } init { - rootProject.allprojects { - tasks.withType().configureEach { - plugins.withDependencies { clear() } + rootProject.allprojects { project -> + project.tasks.withType().configureEach { task -> + task.plugins.withDependencies { dependencies -> dependencies.clear() } } } } @@ -56,7 +56,7 @@ class DokkaMultiModuleTaskTest { dokkaSourceSets.create("main") dokkaSourceSets.create("test") dokkaSourceSets.configureEach { - includes.from(include1, include2) + it.includes.from(include1, include2) } } @@ -135,7 +135,7 @@ class DokkaMultiModuleTaskTest { fun `multimodule task with no child tasks throws DokkaException`() { val project = ProjectBuilder.builder().build() val multimodule = project.tasks.create("multimodule") - project.configurations.configureEach { withDependencies { clear() } } + project.configurations.configureEach { it.withDependencies { it.clear() } } assertFailsWith { multimodule.generateDocumentation() } } @@ -147,17 +147,17 @@ class DokkaMultiModuleTaskTest { childDokkaTask.apply { dokkaSourceSets.create("main") { - includes.from(childDokkaTaskInclude1, childDokkaTaskInclude2) + it.includes.from(childDokkaTaskInclude1, childDokkaTaskInclude2) } dokkaSourceSets.create("main2") { - includes.from(childDokkaTaskInclude3) + it.includes.from(childDokkaTaskInclude3) } } val secondChildDokkaTaskInclude = childProject.file("include4") val secondChildDokkaTask = childProject.tasks.create("secondChildDokkaTask") { dokkaSourceSets.create("main") { - includes.from(secondChildDokkaTaskInclude) + it.includes.from(secondChildDokkaTaskInclude) } } multiModuleTask.addChildTask(secondChildDokkaTask) diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt index 651cbc93ac..546a59dbdd 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/DokkaTaskTest.kt @@ -11,12 +11,12 @@ class DokkaTaskTest { fun `no suppressed source sets are present after in built configuration`() { val project = ProjectBuilder.builder().build() val task = project.tasks.create("dokkaTask") - project.configurations.all { withDependencies { clear() } } + project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } task.dokkaSourceSets.register("main") task.dokkaSourceSets.register("jvm") task.dokkaSourceSets.register("test") { - suppress by true + it.suppress by true } assertEquals( @@ -30,7 +30,7 @@ class DokkaTaskTest { fun `module version is not present if not specified`(){ val project = ProjectBuilder.builder().build() val task = project.tasks.create("dokkaTask") - project.configurations.all { withDependencies { clear() } } + project.configurations.all { configuration -> configuration.withDependencies { it.clear() } } task.dokkaSourceSets.register("main") assertNull(task.buildDokkaConfiguration().moduleVersion) diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt index 0247a82f92..9babeefdcd 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderTest.kt @@ -226,9 +226,9 @@ class GradleDokkaSourceSetBuilderTest { }) sourceSet.sourceLink { - remoteLineSuffix by "ls2" - localDirectory by project.file("p2") - remoteUrl by URL("https://u2") + it.remoteLineSuffix by "ls2" + it.localDirectory by project.file("p2") + it.remoteUrl by URL("https://u2") } sourceSet.sourceLink(project.closureOf { @@ -270,7 +270,7 @@ class GradleDokkaSourceSetBuilderTest { }) sourceSet.perPackageOption { - matchingRegex by "p2.*" + it.matchingRegex by "p2.*" } sourceSet.perPackageOption(project.closureOf { @@ -312,7 +312,7 @@ class GradleDokkaSourceSetBuilderTest { ) sourceSet.externalDocumentationLink { - url by URL("https://u2") + it.url by URL("https://u2") } sourceSet.externalDocumentationLink(project.closureOf { diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt index 89d1b6dd4a..9c788a0169 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinDslDokkaTaskConfigurationTest.kt @@ -14,7 +14,7 @@ class KotlinDslDokkaTaskConfigurationTest { val project = ProjectBuilder.builder().build() project.plugins.apply("org.jetbrains.dokka") project.tasks.withType().configureEach { - outputDirectory by File("test") + it.outputDirectory by File("test") } project.tasks.withType(DokkaTask::class.java).forEach { dokkaTask -> @@ -31,7 +31,7 @@ class KotlinDslDokkaTaskConfigurationTest { dokkaTask.dokkaSourceSets.run { val commonMain = create("commonMain") val jvmMain = create("jvmMain") { - dependsOn("commonMain") + it.dependsOn("commonMain") } assertEquals( @@ -65,7 +65,7 @@ class KotlinDslDokkaTaskConfigurationTest { dokkaSourceSets.run { val commonMain = create("commonMain") val jvmMain = create("jvmMain") { - dependsOn(commonMain) + it.dependsOn(commonMain) } assertEquals( @@ -86,7 +86,7 @@ class KotlinDslDokkaTaskConfigurationTest { project.tasks.withType(DokkaTask::class.java).first().apply { dokkaSourceSets.run { val special = create("special") { - dependsOn(kotlin.sourceSets.getByName("main")) + it.dependsOn(kotlin.sourceSets.getByName("main")) } assertEquals( diff --git a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt index dcb537dd5f..bf3da6efda 100644 --- a/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt +++ b/runners/gradle-plugin/src/test/kotlin/org/jetbrains/dokka/gradle/KotlinSourceSetGistTest.kt @@ -117,8 +117,8 @@ class KotlinSourceSetGistTest { /* Only work with file dependencies */ project.configurations.forEach { configuration -> - configuration.withDependencies { - removeIf { dependency -> + configuration.withDependencies { dependencies -> + dependencies.removeIf { dependency -> dependency !is FileCollectionDependency } } From 2c254678ee5dce9dcf993d7ec3a4e4b4f18d2e5d Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 29 Jan 2023 23:31:43 +0100 Subject: [PATCH 20/58] simplify binary-compatibility-validator plugin config --- build.gradle.kts | 24 ++++++++++++++- .../org/jetbrains/binaryCompatibility.kt | 29 ------------------- .../main/kotlin/org/jetbrains/publication.kt | 1 - 3 files changed, 23 insertions(+), 31 deletions(-) delete mode 100644 buildSrc/src/main/kotlin/org/jetbrains/binaryCompatibility.kt diff --git a/build.gradle.kts b/build.gradle.kts index 09884deb6d..758a57bb69 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,12 @@ -import org.jetbrains.* +import org.jetbrains.ValidatePublications +import org.jetbrains.publicationChannels plugins { org.jetbrains.conventions.base id("org.jetbrains.dokka") id("io.github.gradle-nexus.publish-plugin") + + id("org.jetbrains.kotlinx.binary-compatibility-validator") } val dokka_version: String by project @@ -29,3 +32,22 @@ val dokkaPublish by tasks.registering { finalizedBy(tasks.named("closeAndReleaseSonatypeStagingRepository")) } } + +apiValidation { + ignoredProjects.addAll( + setOf( + "search-component", + "compiler-dependency", + "kotlin-analysis", + "intellij-dependency", + "frontend", + + "integration-tests", + "gradle", + "cli", + "maven", + + "test-utils", + ) + ) +} diff --git a/buildSrc/src/main/kotlin/org/jetbrains/binaryCompatibility.kt b/buildSrc/src/main/kotlin/org/jetbrains/binaryCompatibility.kt deleted file mode 100644 index 0b8386b61e..0000000000 --- a/buildSrc/src/main/kotlin/org/jetbrains/binaryCompatibility.kt +++ /dev/null @@ -1,29 +0,0 @@ -package org.jetbrains - -import kotlinx.validation.ApiValidationExtension -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure - -internal object BinaryCompatibilityConfig { - val ignoredPublications = setOf("kotlinAnalysisIntelliJ", "kotlinAnalysis", "kotlinAnalysisCompiler") - val ignoredSubprojects = setOf( - "search-component", - "compiler-dependency", - "intellij-dependency", - "kotlin-analysis", - "frontend" - ) -} - -internal fun Project.registerBinaryCompatibilityCheck(publicationName: String) { - if (publicationName !in BinaryCompatibilityConfig.ignoredPublications) { - if (tasks.findByName("apiBuild") == null) { - plugins.apply(kotlinx.validation.BinaryCompatibilityValidatorPlugin::class.java) - configure { - ignoredProjects.addAll( - BinaryCompatibilityConfig.ignoredSubprojects.intersect(allprojects.map { it.name }.toSet()) - ) - } - } - } -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt index eb45e255f2..ac7cfe4c89 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt +++ b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt @@ -42,7 +42,6 @@ fun Project.registerDokkaArtifactPublication(publicationName: String, configure: configureSpacePublicationIfNecessary(publicationName) configureSonatypePublicationIfNecessary(publicationName) createDokkaPublishTaskIfNecessary() - registerBinaryCompatibilityCheck(publicationName) } fun Project.configureSpacePublicationIfNecessary(vararg publications: String) { From 452f141b636642ccec0948e40c47d01eb1fb1488 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 29 Jan 2023 23:31:54 +0100 Subject: [PATCH 21/58] update binary compatibility plugin version --- buildSrc/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index c82b890982..5b096e1bf8 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20") implementation("com.github.jengelman.gradle.plugins:shadow:2.0.4") implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") - implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.10.1") + implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.12.1") implementation("io.github.gradle-nexus:publish-plugin:1.1.0") implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.7.10") implementation("com.gradle.publish:plugin-publish-plugin:0.20.0") From 8693c583cc5848f27f85a14b77e5896845a1bd92 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 29 Jan 2023 23:32:11 +0100 Subject: [PATCH 22/58] rm ./runners/build.gradle.kts --- runners/build.gradle.kts | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 runners/build.gradle.kts diff --git a/runners/build.gradle.kts b/runners/build.gradle.kts deleted file mode 100644 index 5802e3a6a0..0000000000 --- a/runners/build.gradle.kts +++ /dev/null @@ -1,14 +0,0 @@ -plugins { - org.jetbrains.conventions.`kotlin-jvm` -} - - -//subprojects { -// apply { -// plugin("maven-publish") -// } -// -// tasks.processResources { -// duplicatesStrategy = DuplicatesStrategy.WARN -// } -//} From c40cd189dbf2fae3611489179f7ce07c37bb807f Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Sun, 29 Jan 2023 23:32:25 +0100 Subject: [PATCH 23/58] tidy up Maven runner build config --- runners/maven-plugin/build.gradle.kts | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/runners/maven-plugin/build.gradle.kts b/runners/maven-plugin/build.gradle.kts index a03e5f2b41..e6aab8eb3b 100644 --- a/runners/maven-plugin/build.gradle.kts +++ b/runners/maven-plugin/build.gradle.kts @@ -1,4 +1,3 @@ -import kotlinx.validation.sourceSets import org.jetbrains.CrossPlatformExec import org.jetbrains.SetupMaven import org.jetbrains.registerDokkaArtifactPublication @@ -22,15 +21,14 @@ dependencies { val mavenBuildDir = setupMaven.mavenBuildDir val mavenBinDir = setupMaven.mavenBinDir -tasks.named("clean") { +tasks.clean { delete(mavenBuildDir) delete(mavenBinDir) } -/** - * Generate pom.xml for Maven Plugin Plugin - */ val generatePom by tasks.registering(Copy::class) { + description = "Generate pom.xml for Maven Plugin Plugin" + val dokka_version: String by project inputs.property("dokka_version", dokka_version) @@ -55,10 +53,9 @@ val generatePom by tasks.registering(Copy::class) { } } -/** - * Copy compiled classes to [mavenBuildDir] for Maven Plugin Plugin - */ val syncClasses by tasks.registering(Sync::class) { + description = "Copy compiled classes to the Maven build dir, for Maven Plugin task execution" + dependsOn(tasks.compileKotlin, tasks.compileJava) from("$buildDir/classes/kotlin", "$buildDir/classes/java") into("${setupMaven.mavenBuildDir}/classes/java") @@ -72,20 +69,24 @@ val helpMojo by tasks.registering(CrossPlatformExec::class) { dependsOn(setupMaven, generatePom, syncClasses) workingDir(setupMaven.mavenBuildDir) commandLine(setupMaven.mvn, "-e", "-B", "org.apache.maven.plugins:maven-plugin-plugin:helpmojo") + + outputs.dir(layout.buildDirectory.dir("maven")) } val pluginDescriptor by tasks.registering(CrossPlatformExec::class) { dependsOn(setupMaven, generatePom, syncClasses) workingDir(setupMaven.mavenBuildDir) commandLine(setupMaven.mvn, "-e", "-B", "org.apache.maven.plugins:maven-plugin-plugin:descriptor") + + outputs.dir(layout.buildDirectory.dir("maven/classes/java/main/META-INF/maven")) } val sourceJar by tasks.registering(Jar::class) { archiveClassifier.set("sources") - from(sourceSets["main"].allSource) + from(java.sourceSets["main"].allSource) } -tasks.named("jar") { +tasks.jar { dependsOn(pluginDescriptor, helpMojo) metaInf { from("${setupMaven.mavenBuildDir}/classes/java/main/META-INF") From 34d21e817f3da70b6b80ec92bd5c2efe28e82078 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:33:34 +0100 Subject: [PATCH 24/58] move 'pluginManagement' up a level --- settings.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 82be9afe3d..a5977281f2 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -84,11 +84,11 @@ dependencyResolutionManagement { maven("https://cache-redirector.jetbrains.com/intellij-dependencies") maven("https://www.myget.org/F/rd-snapshots/maven/") } +} - pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - } +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() } } From 88b7cc33dd72b3a979e8954a48bd2c28c18fd7a2 Mon Sep 17 00:00:00 2001 From: aSemy <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:35:20 +0100 Subject: [PATCH 25/58] ignoredProjects: use += instead of addAll Co-authored-by: Goooler --- build.gradle.kts | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 758a57bb69..a016fcf592 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,20 +34,18 @@ val dokkaPublish by tasks.registering { } apiValidation { - ignoredProjects.addAll( - setOf( - "search-component", - "compiler-dependency", - "kotlin-analysis", - "intellij-dependency", - "frontend", - - "integration-tests", - "gradle", - "cli", - "maven", - - "test-utils", - ) + ignoredProjects += setOf( + "search-component", + "compiler-dependency", + "kotlin-analysis", + "intellij-dependency", + "frontend", + + "integration-tests", + "gradle", + "cli", + "maven", + + "test-utils", ) } From ebb3e3d9e4d79205cf8c764088cbbf486faa5994 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Feb 2023 09:38:37 +0100 Subject: [PATCH 26/58] add link to explain the Node/Yarn repos --- settings.gradle.kts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index a5977281f2..aa785b52f3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -42,6 +42,13 @@ include( val isCiBuild = System.getenv("GITHUB_ACTIONS") != null || System.getenv("TEAMCITY_VERSION") != null +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + plugins { `gradle-enterprise` } @@ -64,6 +71,7 @@ dependencyResolutionManagement { google() // Declare the Node.js & Yarn download repositories + // Required by Gradle Node plugin: https://github.com/node-gradle/gradle-node-plugin/blob/795c36fe93b3998b0192073db66abb83bf849f67/docs/faq.md#is-this-plugin-compatible-with-centralized-repositories-declaration ivy("https://nodejs.org/dist/") { name = "Node Distributions at $url" patternLayout { artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") } @@ -85,10 +93,3 @@ dependencyResolutionManagement { maven("https://www.myget.org/F/rd-snapshots/maven/") } } - -pluginManagement { - repositories { - gradlePluginPortal() - mavenCentral() - } -} From de9eff176198c4b0ab0482fa4625308477703d57 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:25:43 +0100 Subject: [PATCH 27/58] formatting --- runners/cli/build.gradle.kts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/runners/cli/build.gradle.kts b/runners/cli/build.gradle.kts index c7509e0acb..b522dbddd3 100644 --- a/runners/cli/build.gradle.kts +++ b/runners/cli/build.gradle.kts @@ -1,7 +1,6 @@ import org.jetbrains.DokkaPublicationBuilder.Component.Shadow import org.jetbrains.registerDokkaArtifactPublication - plugins { org.jetbrains.conventions.`kotlin-jvm` org.jetbrains.conventions.`maven-publish` @@ -26,8 +25,7 @@ tasks { } } -registerDokkaArtifactPublication("dokkaCli"){ +registerDokkaArtifactPublication("dokkaCli") { artifactId = "dokka-cli" component = Shadow } - From 1711af38f1b18f5844f0ab0ecb69219c9367870b Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Feb 2023 10:47:59 +0100 Subject: [PATCH 28/58] update javadocJar task --- runners/gradle-plugin/build.gradle.kts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 485f521c01..13ea1f2c87 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -80,9 +80,9 @@ pluginBundle { } } -val javadocJar by tasks.creating(Jar::class) { +val javadocJar by tasks.registering(Jar::class) { group = JavaBasePlugin.DOCUMENTATION_GROUP - description = "Assembles java doc to jar" + description = "Assembles Javadoc into a JAR" archiveClassifier.set("javadoc") from(tasks.javadoc) } @@ -98,6 +98,10 @@ publishing { register("pluginMaven") { configurePom("Dokka ${project.name}") artifactId = "dokka-gradle-plugin" + } + + withType().configureEach { + // always add Javadoc, to verify it works during integration tests artifact(javadocJar) } From 0264c73b3502cdd3c1b64cbe6bc3cf512524176c Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 22 Feb 2023 10:02:04 +0100 Subject: [PATCH 29/58] remove NonCacheableIntegrationTest - moved to buildSrc convention --- integration-tests/build.gradle.kts | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/integration-tests/build.gradle.kts b/integration-tests/build.gradle.kts index 391d61f811..80c07b374a 100644 --- a/integration-tests/build.gradle.kts +++ b/integration-tests/build.gradle.kts @@ -2,29 +2,6 @@ plugins { org.jetbrains.conventions.`kotlin-jvm` } -// TODO move this to buildSrc convention plugin -/** - * Dokka's integration test task is not cacheable because the HTML outputs - * it produces when running the tests are used for showcasing resulting documentation, - * which does not work well with caching. - * - * At the moment there are two problems that do not allow to make it cacheable: - * - * 1. The task's inputs are such that changes in Dokka's code do not invalidate the cache, - * because it is run with the same version of Dokka ("DOKKA_VERSION") on the same - * test project inputs. - * 2. The tests generate HTML output which is then used to showcase documentation. - * The outputs are usually copied to a location from which it will be served. - * However, if the test is cacheable, it produces no outputs, so no documentation - * to showcase. It needs to be broken into two separate tasks: one cacheable for running - * the tests and producing HTML output, and another non-cacheable for copying the output. - * - * @see [org.jetbrains.dokka.it.TestOutputCopier] for more details on showcasing documentation - */ -@DisableCachingByDefault(because = "Contains incorrect inputs/outputs configuration, see the KDoc for details") -abstract class NonCacheableIntegrationTest : Test() - - dependencies { implementation(kotlin("stdlib")) api(project(":test-utils")) From 4d8649d948e171f9e2432ce09d630bea1d564b78 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 22 Feb 2023 10:27:36 +0100 Subject: [PATCH 30/58] update Kotlin version --- buildSrc/build.gradle.kts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 5b096e1bf8..435fabb2fa 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,3 +1,5 @@ +import java.util.* + plugins { `kotlin-dsl` } @@ -6,13 +8,20 @@ repositories { gradlePluginPortal() } +// TODO define versions in Gradle Version Catalog +val properties = file("../gradle.properties").inputStream().use { + Properties().apply { load(it) } +} + +val kotlinVersion = properties["kotlin_version"] + dependencies { // Import Gradle Plugins that will be used in the buildSrc pre-compiled script plugins, and any `build.gradle.kts` // files in the project. // Use their Maven coordinates (plus versions), not Gradle plugin IDs! // This should be the only place that Gradle plugin versions are defined, so they are aligned across all build scripts - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.20") + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") implementation("com.github.jengelman.gradle.plugins:shadow:2.0.4") implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.12.1") From 712d79f19bbd9afbd93752afad4f96ecb0fb1133 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 22 Feb 2023 11:08:24 +0100 Subject: [PATCH 31/58] update TODO --- buildSrc/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 435fabb2fa..f4d0680f76 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,7 +8,7 @@ repositories { gradlePluginPortal() } -// TODO define versions in Gradle Version Catalog +// TODO define versions in Gradle Version Catalog https://github.com/Kotlin/dokka/pull/2884 val properties = file("../gradle.properties").inputStream().use { Properties().apply { load(it) } } From 68895d07157e485310aedb74bd303dfd2e75f993 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 12:36:06 +0100 Subject: [PATCH 32/58] add gradle-plugin api dump --- runners/gradle-plugin/api/gradle-plugin.api | 179 ++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 runners/gradle-plugin/api/gradle-plugin.api diff --git a/runners/gradle-plugin/api/gradle-plugin.api b/runners/gradle-plugin/api/gradle-plugin.api new file mode 100644 index 0000000000..02ee28cca9 --- /dev/null +++ b/runners/gradle-plugin/api/gradle-plugin.api @@ -0,0 +1,179 @@ +public abstract class org/jetbrains/dokka/gradle/AbstractDokkaLeafTask : org/jetbrains/dokka/gradle/AbstractDokkaTask { + public fun ()V + public final fun getDokkaSourceSets ()Lorg/gradle/api/NamedDomainObjectContainer; + protected final fun getUnsuppressedSourceSets ()Ljava/util/List; +} + +public abstract class org/jetbrains/dokka/gradle/AbstractDokkaParentTask : org/jetbrains/dokka/gradle/AbstractDokkaTask { + public fun ()V + public final fun addChildTask (Ljava/lang/String;)V + public final fun addChildTask (Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)V + public final fun addChildTasks (Ljava/lang/Iterable;Ljava/lang/String;)V + public final fun addSubprojectChildTasks (Ljava/lang/String;)V + public final fun removeChildTask (Ljava/lang/String;)V + public final fun removeChildTask (Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)V + public final fun removeChildTasks (Ljava/lang/Iterable;)V + public final fun removeChildTasks (Ljava/lang/Iterable;Ljava/lang/String;)V + public final fun removeChildTasks (Lorg/gradle/api/Project;)V + public final fun removeSubprojectChildTasks (Ljava/lang/String;)V +} + +public abstract class org/jetbrains/dokka/gradle/AbstractDokkaTask : org/gradle/api/DefaultTask { + public fun ()V + public final fun doFirst (Lgroovy/lang/Closure;)Lorg/gradle/api/Task; + public final fun doFirst (Lorg/gradle/api/Action;)Lorg/gradle/api/Task; + public final fun getCacheRoot ()Lorg/gradle/api/provider/Property; + public final fun getFailOnWarning ()Lorg/gradle/api/provider/Property; + public final fun getModuleName ()Lorg/gradle/api/provider/Property; + public final fun getModuleVersion ()Lorg/gradle/api/provider/Property; + public final fun getOfflineMode ()Lorg/gradle/api/provider/Property; + public final fun getOutputDirectory ()Lorg/gradle/api/provider/Property; + public final fun getPlugins ()Lorg/gradle/api/artifacts/Configuration; + public final fun getPluginsConfiguration ()Lorg/gradle/api/provider/ListProperty; + public final fun getPluginsMapConfiguration ()Lorg/gradle/api/provider/MapProperty; + public final fun getRuntime ()Lorg/gradle/api/artifacts/Configuration; + public final fun getSuppressInheritedMembers ()Lorg/gradle/api/provider/Property; + public final fun getSuppressObviousFunctions ()Lorg/gradle/api/provider/Property; +} + +public final class org/jetbrains/dokka/gradle/DokkaBootstrapFactoryKt { + public static final fun DokkaBootstrap (Lorg/gradle/api/artifacts/Configuration;Lkotlin/reflect/KClass;)Lorg/jetbrains/dokka/DokkaBootstrap; +} + +public abstract class org/jetbrains/dokka/gradle/DokkaCollectorTask : org/jetbrains/dokka/gradle/AbstractDokkaParentTask { + public fun ()V +} + +public abstract interface class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { + public abstract fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; +} + +public final class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$CompactInParent : org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { + public static final field INSTANCE Lorg/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$CompactInParent; + public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; +} + +public final class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$NoCopy : org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { + public static final field INSTANCE Lorg/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$NoCopy; + public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; +} + +public abstract class org/jetbrains/dokka/gradle/DokkaMultiModuleTask : org/jetbrains/dokka/gradle/AbstractDokkaParentTask { + public fun ()V + public final fun getFileLayout ()Lorg/gradle/api/provider/Property; + public final fun getIncludes ()Lorg/gradle/api/file/ConfigurableFileCollection; + public fun getTaskDependencies ()Lorg/gradle/api/internal/tasks/TaskDependencyInternal; + public synthetic fun getTaskDependencies ()Lorg/gradle/api/tasks/TaskDependency; +} + +public class org/jetbrains/dokka/gradle/DokkaPlugin : org/gradle/api/Plugin { + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public abstract class org/jetbrains/dokka/gradle/DokkaTask : org/jetbrains/dokka/gradle/AbstractDokkaLeafTask { + public fun ()V +} + +public abstract class org/jetbrains/dokka/gradle/DokkaTaskPartial : org/jetbrains/dokka/gradle/AbstractDokkaLeafTask { + public fun ()V +} + +public class org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder : org/jetbrains/dokka/DokkaConfigurationBuilder { + public fun (Ljava/lang/String;Lorg/gradle/api/Project;Lorg/gradle/api/NamedDomainObjectFactory;)V + public final fun DokkaSourceSetID (Ljava/lang/String;)Lorg/jetbrains/dokka/DokkaSourceSetID; + public synthetic fun build ()Ljava/lang/Object; + public fun build ()Lorg/jetbrains/dokka/DokkaSourceSetImpl; + public final fun dependsOn (Ljava/lang/String;)V + public final fun dependsOn (Lorg/gradle/api/tasks/SourceSet;)V + public final fun dependsOn (Lorg/jetbrains/dokka/DokkaConfiguration$DokkaSourceSet;)V + public final fun dependsOn (Lorg/jetbrains/dokka/DokkaSourceSetID;)V + public final fun dependsOn (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;)V + public final fun externalDocumentationLink (Lgroovy/lang/Closure;)V + public final fun externalDocumentationLink (Ljava/lang/String;Ljava/lang/String;)V + public final fun externalDocumentationLink (Ljava/net/URL;Ljava/net/URL;)V + public final fun externalDocumentationLink (Lorg/gradle/api/Action;)V + public static synthetic fun externalDocumentationLink$default (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)V + public static synthetic fun externalDocumentationLink$default (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Ljava/net/URL;Ljava/net/URL;ILjava/lang/Object;)V + public final fun getApiVersion ()Lorg/gradle/api/provider/Property; + public final fun getClasspath ()Lorg/gradle/api/file/ConfigurableFileCollection; + public final fun getDependentSourceSets ()Lorg/gradle/api/provider/SetProperty; + public final fun getDisplayName ()Lorg/gradle/api/provider/Property; + public final fun getDocumentedVisibilities ()Lorg/gradle/api/provider/SetProperty; + public final fun getExternalDocumentationLinks ()Lorg/gradle/api/provider/SetProperty; + public final fun getIncludeNonPublic ()Lorg/gradle/api/provider/Property; + public final fun getIncludes ()Lorg/gradle/api/file/ConfigurableFileCollection; + public final fun getJdkVersion ()Lorg/gradle/api/provider/Property; + public final fun getLanguageVersion ()Lorg/gradle/api/provider/Property; + public final fun getName ()Ljava/lang/String; + public final fun getNoAndroidSdkLink ()Lorg/gradle/api/provider/Property; + public final fun getNoJdkLink ()Lorg/gradle/api/provider/Property; + public final fun getNoStdlibLink ()Lorg/gradle/api/provider/Property; + public final fun getPerPackageOptions ()Lorg/gradle/api/provider/ListProperty; + public final fun getPlatform ()Lorg/gradle/api/provider/Property; + public final fun getReportUndocumented ()Lorg/gradle/api/provider/Property; + public final fun getSamples ()Lorg/gradle/api/file/ConfigurableFileCollection; + public final fun getSkipDeprecated ()Lorg/gradle/api/provider/Property; + public final fun getSkipEmptyPackages ()Lorg/gradle/api/provider/Property; + public final fun getSourceLinks ()Lorg/gradle/api/provider/SetProperty; + public final fun getSourceRoots ()Lorg/gradle/api/file/ConfigurableFileCollection; + public final fun getSourceSetID ()Lorg/jetbrains/dokka/DokkaSourceSetID; + public final fun getSuppress ()Lorg/gradle/api/provider/Property; + public final fun getSuppressGeneratedFiles ()Lorg/gradle/api/provider/Property; + public final fun getSuppressedFiles ()Lorg/gradle/api/file/ConfigurableFileCollection; + public final fun perPackageOption (Lgroovy/lang/Closure;)V + public final fun perPackageOption (Lorg/gradle/api/Action;)V + public final fun sourceLink (Lgroovy/lang/Closure;)V + public final fun sourceLink (Lorg/gradle/api/Action;)V + public final fun sourceRoot (Ljava/io/File;)V + public final fun sourceRoot (Ljava/lang/String;)V +} + +public final class org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderExtensionsKt { + public static final fun dependsOn (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Lcom/android/build/gradle/api/AndroidSourceSet;)V + public static final fun dependsOn (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;)V + public static final fun kotlinSourceSet (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;)V +} + +public final class org/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilderFactoryKt { + public static final fun gradleDokkaSourceSetBuilderFactory (Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Lorg/gradle/api/NamedDomainObjectFactory; +} + +public final class org/jetbrains/dokka/gradle/GradleExternalDocumentationLinkBuilder : org/jetbrains/dokka/DokkaConfigurationBuilder { + public fun (Lorg/gradle/api/Project;)V + public synthetic fun build ()Ljava/lang/Object; + public fun build ()Lorg/jetbrains/dokka/ExternalDocumentationLinkImpl; + public final fun getPackageListUrl ()Lorg/gradle/api/provider/Property; + public final fun getUrl ()Lorg/gradle/api/provider/Property; +} + +public final class org/jetbrains/dokka/gradle/GradlePackageOptionsBuilder : org/jetbrains/dokka/DokkaConfigurationBuilder { + public fun (Lorg/gradle/api/Project;)V + public synthetic fun build ()Ljava/lang/Object; + public fun build ()Lorg/jetbrains/dokka/PackageOptionsImpl; + public final fun getDocumentedVisibilities ()Lorg/gradle/api/provider/SetProperty; + public final fun getIncludeNonPublic ()Lorg/gradle/api/provider/Property; + public final fun getMatchingRegex ()Lorg/gradle/api/provider/Property; + public final fun getReportUndocumented ()Lorg/gradle/api/provider/Property; + public final fun getSkipDeprecated ()Lorg/gradle/api/provider/Property; + public final fun getSuppress ()Lorg/gradle/api/provider/Property; +} + +public final class org/jetbrains/dokka/gradle/GradleSourceLinkBuilder : org/jetbrains/dokka/DokkaConfigurationBuilder { + public fun (Lorg/gradle/api/Project;)V + public synthetic fun build ()Ljava/lang/Object; + public fun build ()Lorg/jetbrains/dokka/SourceLinkDefinitionImpl; + public final fun getLocalDirectory ()Lorg/gradle/api/provider/Property; + public final fun getRemoteLineSuffix ()Lorg/gradle/api/provider/Property; + public final fun getRemoteUrl ()Lorg/gradle/api/provider/Property; +} + +public final class org/jetbrains/dokka/gradle/SourceSetKotlinGistConfigurationKt { + public static final fun configureWithKotlinSourceSet (Lorg/jetbrains/dokka/gradle/GradleDokkaSourceSetBuilder;Lorg/jetbrains/kotlin/gradle/plugin/KotlinSourceSet;)V +} + +public final class org/jetbrains/dokka/gradle/kotlin/KotlinClasspathUtilsKt { + public static final fun isHMPPEnabled (Lorg/gradle/api/Project;)Z +} + From 33cb1d7cdc3c4a5e36628a36bb5971de7da82a8a Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 12:38:49 +0100 Subject: [PATCH 33/58] add api-dump project paths --- build.gradle.kts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a016fcf592..08373920a9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -34,18 +34,21 @@ val dokkaPublish by tasks.registering { } apiValidation { + // note that subprojects are ignored by their name, not their path https://github.com/Kotlin/binary-compatibility-validator/issues/16 ignoredProjects += setOf( - "search-component", - "compiler-dependency", - "kotlin-analysis", - "intellij-dependency", - "frontend", - - "integration-tests", - "gradle", - "cli", - "maven", - - "test-utils", + // NAME PATH + "search-component", // :plugins:search-component + "frontend", // :plugins:base:frontend + + "kotlin-analysis", // :kotlin-analysis + "compiler-dependency", // :kotlin-analysis:compiler-dependency + "intellij-dependency", // :kotlin-analysis:intellij-dependency + + "integration-tests", // :integration-tests + "gradle", // :integration-tests:gradle + "cli", // :integration-tests:cli + "maven", // integration-tests:maven + + "test-utils", // :test-utils ) } From 05c284ec4f5beeed1a0697bb56875224da519887 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 12:48:56 +0100 Subject: [PATCH 34/58] move respositories specific only to :kotlin-analysis:intellij-dependency --- .../intellij-dependency/build.gradle.kts | 14 ++++++++++++++ settings.gradle.kts | 13 ++++--------- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/kotlin-analysis/intellij-dependency/build.gradle.kts b/kotlin-analysis/intellij-dependency/build.gradle.kts index cb2ee4540c..732b9d80e5 100644 --- a/kotlin-analysis/intellij-dependency/build.gradle.kts +++ b/kotlin-analysis/intellij-dependency/build.gradle.kts @@ -7,6 +7,20 @@ plugins { id("com.github.johnrengelman.shadow") } +repositories { + // Override the shared repositories defined in the root settings.gradle.kts + // These repositories are very specific and are not needed in other projects + mavenCentral() + maven("https://www.jetbrains.com/intellij-repository/snapshots") { + mavenContent { snapshotsOnly() } + } + maven("https://www.jetbrains.com/intellij-repository/releases") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide") + maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies") + maven("https://cache-redirector.jetbrains.com/intellij-dependencies") + maven("https://www.myget.org/F/rd-snapshots/maven/") +} + val intellijCore: Configuration by configurations.creating fun intellijCoreAnalysis() = zipTree(intellijCore.singleFile).matching { diff --git a/settings.gradle.kts b/settings.gradle.kts index aa785b52f3..ad24307c82 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -61,10 +61,12 @@ gradleEnterprise { } } -@Suppress("UnstableApiUsage") // Central declaration of repositories is an incubating feature +@Suppress("UnstableApiUsage") dependencyResolutionManagement { - repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + // subproject :kotlin-analysis:intellij-dependency requires specific repositories that should not be shared with + // the other subprojects, so the repositoriesMode is not-set to allow subprojects to override. + //repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) repositories { mavenCentral() @@ -84,12 +86,5 @@ dependencyResolutionManagement { metadataSources { artifact() } content { includeModule("com.yarnpkg", "yarn") } } - - maven("https://www.jetbrains.com/intellij-repository/snapshots") - maven("https://www.jetbrains.com/intellij-repository/releases") - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide") - maven("https://maven.pkg.jetbrains.space/kotlin/p/kotlin/kotlin-ide-plugin-dependencies") - maven("https://cache-redirector.jetbrains.com/intellij-dependencies") - maven("https://www.myget.org/F/rd-snapshots/maven/") } } From 932b343d2290910f3774bbf2dcccd3ad86f454b2 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 13:13:02 +0100 Subject: [PATCH 35/58] add NonCacheableIntegrationTest back (it was lost during a merge?) --- .../dokka-integration-test.gradle.kts | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts index ce3b5eeead..2483813654 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts @@ -20,7 +20,28 @@ val integrationTestRuntimeOnly by configurations.getting { extendsFrom(configurations.runtimeOnly.get()) } -val integrationTest by tasks.registering(Test::class) { +/** + * Dokka's integration test task is not cacheable because the HTML outputs + * it produces when running the tests are used for showcasing resulting documentation, + * which does not work well with caching. + * + * At the moment there are two problems that do not allow to make it cacheable: + * + * 1. The task's inputs are such that changes in Dokka's code do not invalidate the cache, + * because it is run with the same version of Dokka (`"DOKKA_VERSION"`) on the same + * test project inputs. + * 2. The tests generate HTML output which is then used to showcase documentation. + * The outputs are usually copied to a location from which it will be served. + * However, if the test is cacheable, it produces no outputs, so no documentation + * to showcase. It needs to be broken into two separate tasks: one cacheable for running + * the tests and producing HTML output, and another non-cacheable for copying the output. + * + * @see [org.jetbrains.dokka.it.TestOutputCopier] for more details on showcasing documentation + */ +@DisableCachingByDefault(because = "Contains incorrect inputs/outputs configuration, see the KDoc for details") +abstract class NonCacheableIntegrationTest : Test() + +val integrationTest by tasks.register("integrationTest") { maxHeapSize = "2G" description = "Runs integration tests." group = "verification" From a367a264bf4acc74d71f6d8eff415933d6edf65b Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 13:26:59 +0100 Subject: [PATCH 36/58] remove javadocJar task from gradle-plugin (it was moved to the convention plugin) --- .../kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts | 2 ++ runners/gradle-plugin/build.gradle.kts | 7 ------- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index 25f0bfdb28..43414e15e8 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -18,6 +18,8 @@ tasks.dokkaHtml { } val javadocJar by tasks.registering(Jar::class) { + group = JavaBasePlugin.DOCUMENTATION_GROUP + description = "Assembles Dokka HTML into a Javadoc JAR" archiveClassifier.set("javadoc") from(tasks.dokkaHtml) } diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 52cff8a720..e2caf70de6 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -80,13 +80,6 @@ pluginBundle { } } -val javadocJar by tasks.registering(Jar::class) { - group = JavaBasePlugin.DOCUMENTATION_GROUP - description = "Assembles Javadoc into a JAR" - archiveClassifier.set("javadoc") - from(tasks.javadoc) -} - publishing { publications { register("dokkaGradlePluginForIntegrationTests") { From 1949bdac02bee6efb23a0a02ac07e10d1f867dbe Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:15:50 +0100 Subject: [PATCH 37/58] fix javadocJar in gradle-plugin - introduce dokka convention plugin - apply dokka convention to gradle-plugin and kotlin-jvm projects - define util fn for registering a javadocJar task --- .../org/jetbrains/conventions/dokka.gradle.kts | 13 +++++++++++++ .../org/jetbrains/conventions/kotlin-jvm.gradle.kts | 12 +++--------- .../src/main/kotlin/org/jetbrains/publication.kt | 13 +++++++++++++ runners/gradle-plugin/build.gradle.kts | 5 +++++ 4 files changed, 34 insertions(+), 9 deletions(-) create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts new file mode 100644 index 0000000000..9a193cbb26 --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts @@ -0,0 +1,13 @@ +package org.jetbrains.conventions + +import org.gradle.kotlin.dsl.invoke +import org.jetbrains.isLocalPublication + +plugins { + id("org.jetbrains.dokka") +} + +tasks.dokkaHtml { + onlyIf { !isLocalPublication } + outputDirectory.set(layout.buildDirectory.dir("dokka").map { it.asFile }) +} diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index 43414e15e8..c12e2c87fa 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -1,26 +1,20 @@ package org.jetbrains.conventions import org.jetbrains.configureDokkaVersion +import org.jetbrains.registerJavadocJar import org.jetbrains.isLocalPublication import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.jetbrains.conventions.base") kotlin("jvm") - id("org.jetbrains.dokka") + id("org.jetbrains.conventions.dokka") } configureDokkaVersion() -tasks.dokkaHtml { - onlyIf { !isLocalPublication } - outputDirectory.set(layout.buildDirectory.dir("dokka").map { it.asFile }) -} -val javadocJar by tasks.registering(Jar::class) { - group = JavaBasePlugin.DOCUMENTATION_GROUP - description = "Assembles Dokka HTML into a Javadoc JAR" - archiveClassifier.set("javadoc") +registerJavadocJar { from(tasks.dokkaHtml) } diff --git a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt index ac7cfe4c89..34accd7b4f 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt +++ b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt @@ -2,9 +2,13 @@ package org.jetbrains import com.github.jengelman.gradle.plugins.shadow.ShadowExtension import org.gradle.api.Project +import org.gradle.api.plugins.JavaBasePlugin import org.gradle.api.publish.PublishingExtension import org.gradle.api.publish.maven.MavenPublication import org.gradle.api.publish.maven.tasks.PublishToMavenRepository +import org.gradle.api.tasks.TaskContainer +import org.gradle.api.tasks.TaskProvider +import org.gradle.api.tasks.bundling.Jar import org.gradle.kotlin.dsl.* import org.gradle.plugins.signing.SigningExtension import org.jetbrains.DokkaPublicationChannel.* @@ -147,3 +151,12 @@ private fun Project.signPublicationsIfKeyPresent(vararg publications: String) { } } } + +fun Project.registerJavadocJar(configure: Jar.() -> Unit): TaskProvider { + return tasks.register("javadocJar", Jar::class) { + group = JavaBasePlugin.DOCUMENTATION_GROUP + description = "Assembles a Javadoc JAR" + archiveClassifier.set("javadoc") + configure() + } +} diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index e2caf70de6..84ed24a8d8 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -5,6 +5,7 @@ plugins { `kotlin-dsl` org.jetbrains.conventions.`maven-publish` id("com.gradle.plugin-publish") + id("org.jetbrains.conventions.dokka") } dependencies { @@ -80,6 +81,10 @@ pluginBundle { } } +val javadocJar = registerJavadocJar { + from(tasks.dokkaHtml) +} + publishing { publications { register("dokkaGradlePluginForIntegrationTests") { From e2a8edd023afccbea189448726365c467a696b0a Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 14:19:26 +0100 Subject: [PATCH 38/58] restore gradle-plugin/gradle.properties --- runners/gradle-plugin/gradle.properties | 1 + 1 file changed, 1 insertion(+) create mode 100644 runners/gradle-plugin/gradle.properties diff --git a/runners/gradle-plugin/gradle.properties b/runners/gradle-plugin/gradle.properties new file mode 100644 index 0000000000..0d6aa7b61f --- /dev/null +++ b/runners/gradle-plugin/gradle.properties @@ -0,0 +1 @@ +kotlin.stdlib.default.dependency=false From 6603d557211f6e35c9615c901956ae468125ed1b Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:19:09 +0100 Subject: [PATCH 39/58] tidy up javadoc/maven-publish build config --- .../conventions/kotlin-jvm.gradle.kts | 8 ------ .../conventions/maven-publish.gradle.kts | 26 +++++++++++++------ .../main/kotlin/org/jetbrains/publication.kt | 9 ------- runners/gradle-plugin/build.gradle.kts | 10 ------- 4 files changed, 18 insertions(+), 35 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index c12e2c87fa..672dbf243d 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -1,23 +1,15 @@ package org.jetbrains.conventions import org.jetbrains.configureDokkaVersion -import org.jetbrains.registerJavadocJar -import org.jetbrains.isLocalPublication import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.jetbrains.conventions.base") kotlin("jvm") - id("org.jetbrains.conventions.dokka") } configureDokkaVersion() - -registerJavadocJar { - from(tasks.dokkaHtml) -} - val language_version: String by project tasks.withType().configureEach { diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts index f2b4f058d9..7007fd9eca 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/maven-publish.gradle.kts @@ -4,17 +4,27 @@ plugins { id("org.jetbrains.conventions.base") `maven-publish` signing + id("org.jetbrains.conventions.dokka") +} + +val javadocJar by tasks.registering(Jar::class) { + group = JavaBasePlugin.DOCUMENTATION_GROUP + description = "Assembles a Javadoc JAR using Dokka HTML" + archiveClassifier.set("javadoc") + from(tasks.dokkaHtml) } publishing { - publications.withType().configureEach { - repositories { - // Publish to a project-local Maven directory, for verification. To test, run: - // ./gradlew publishAllPublicationsToMavenProjectLocalRepository - // and check $rootDir/build/maven-project-local - maven(rootProject.layout.buildDirectory.dir("maven-project-local")) { - name = "MavenProjectLocal" - } + repositories { + // Publish to a project-local Maven directory, for verification. To test, run: + // ./gradlew publishAllPublicationsToMavenProjectLocalRepository + // and check $rootDir/build/maven-project-local + maven(rootProject.layout.buildDirectory.dir("maven-project-local")) { + name = "MavenProjectLocal" } } + + publications.withType().configureEach { + artifact(javadocJar) + } } diff --git a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt index 34accd7b4f..1946e98a75 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt +++ b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt @@ -151,12 +151,3 @@ private fun Project.signPublicationsIfKeyPresent(vararg publications: String) { } } } - -fun Project.registerJavadocJar(configure: Jar.() -> Unit): TaskProvider { - return tasks.register("javadocJar", Jar::class) { - group = JavaBasePlugin.DOCUMENTATION_GROUP - description = "Assembles a Javadoc JAR" - archiveClassifier.set("javadoc") - configure() - } -} diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 84ed24a8d8..b3bd44e13f 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -5,7 +5,6 @@ plugins { `kotlin-dsl` org.jetbrains.conventions.`maven-publish` id("com.gradle.plugin-publish") - id("org.jetbrains.conventions.dokka") } dependencies { @@ -81,10 +80,6 @@ pluginBundle { } } -val javadocJar = registerJavadocJar { - from(tasks.dokkaHtml) -} - publishing { publications { register("dokkaGradlePluginForIntegrationTests") { @@ -98,11 +93,6 @@ publishing { artifactId = "dokka-gradle-plugin" } - withType().configureEach { - // always add Javadoc, to verify it works during integration tests - artifact(javadocJar) - } - afterEvaluate { named("dokkaGradlePluginPluginMarkerMaven") { configurePom("Dokka plugin") From e48826263761967287ca8be028e165cb1a2e2475 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:26:06 +0100 Subject: [PATCH 40/58] restrict the node/yarn repos to only supply node/yarn --- settings.gradle.kts | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index ad24307c82..df49fea62a 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -74,17 +74,28 @@ dependencyResolutionManagement { // Declare the Node.js & Yarn download repositories // Required by Gradle Node plugin: https://github.com/node-gradle/gradle-node-plugin/blob/795c36fe93b3998b0192073db66abb83bf849f67/docs/faq.md#is-this-plugin-compatible-with-centralized-repositories-declaration - ivy("https://nodejs.org/dist/") { - name = "Node Distributions at $url" - patternLayout { artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") } - metadataSources { artifact() } - content { includeModule("org.nodejs", "node") } + exclusiveContent { + forRepository { + ivy("https://nodejs.org/dist/") { + name = "Node Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]-[classifier]).[ext]") } + metadataSources { artifact() } + content { includeModule("org.nodejs", "node") } + } + } + filter { includeGroup("org.nodejs") } } - ivy("https://github.com/yarnpkg/yarn/releases/download") { - name = "Yarn Distributions at $url" - patternLayout { artifact("v[revision]/[artifact](-v[revision]).[ext]") } - metadataSources { artifact() } - content { includeModule("com.yarnpkg", "yarn") } + + exclusiveContent { + forRepository { + ivy("https://github.com/yarnpkg/yarn/releases/download") { + name = "Yarn Distributions at $url" + patternLayout { artifact("v[revision]/[artifact](-v[revision]).[ext]") } + metadataSources { artifact() } + content { includeModule("com.yarnpkg", "yarn") } + } + } + filter { includeGroup("com.yarnpkg") } } } } From de1250ab671340587201d9c733d4918fecac0cba Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:29:35 +0100 Subject: [PATCH 41/58] update repositoriesMode PREFER_SETTINGS & comment --- settings.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index df49fea62a..dbfd3663db 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -64,9 +64,9 @@ gradleEnterprise { @Suppress("UnstableApiUsage") dependencyResolutionManagement { - // subproject :kotlin-analysis:intellij-dependency requires specific repositories that should not be shared with - // the other subprojects, so the repositoriesMode is not-set to allow subprojects to override. - //repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS) + // subproject :kotlin-analysis:intellij-dependency requires specific repositories that should not be used in + // the other subprojects, so use PREFER_PROJECT to allow subprojects to override the repositories defined here. + repositoriesMode.set(RepositoriesMode.PREFER_PROJECT) repositories { mavenCentral() From 4ed2fc0769b8ff3bca1057cd56a276fc8f821792 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 17:32:44 +0100 Subject: [PATCH 42/58] update link to faq --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index dbfd3663db..91023501ae 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -73,7 +73,7 @@ dependencyResolutionManagement { google() // Declare the Node.js & Yarn download repositories - // Required by Gradle Node plugin: https://github.com/node-gradle/gradle-node-plugin/blob/795c36fe93b3998b0192073db66abb83bf849f67/docs/faq.md#is-this-plugin-compatible-with-centralized-repositories-declaration + // Required by Gradle Node plugin: https://github.com/node-gradle/gradle-node-plugin/blob/3.5.1/docs/faq.md#is-this-plugin-compatible-with-centralized-repositories-declaration exclusiveContent { forRepository { ivy("https://nodejs.org/dist/") { From 7a25d7fba0cdb1a19a5e11432838f8ac4ef895f3 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 18:11:33 +0100 Subject: [PATCH 43/58] fix double javadoc jar artifact --- buildSrc/src/main/kotlin/org/jetbrains/publication.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt index 1946e98a75..60d91c33ea 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/publication.kt +++ b/buildSrc/src/main/kotlin/org/jetbrains/publication.kt @@ -37,7 +37,6 @@ fun Project.registerDokkaArtifactPublication(publicationName: String, configure: artifact(tasks["sourcesJar"]) } } - artifact(tasks["javadocJar"]) configurePom("Dokka ${project.name}") } } From e3017705adc29c3aaf62e37f0be1942aac01fe94 Mon Sep 17 00:00:00 2001 From: aSemy <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:13:58 +0100 Subject: [PATCH 44/58] fix tasks.register -> tasks.registering Co-authored-by: Goooler --- .../org/jetbrains/conventions/dokka-integration-test.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts index 2483813654..612502cd29 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts @@ -41,7 +41,7 @@ val integrationTestRuntimeOnly by configurations.getting { @DisableCachingByDefault(because = "Contains incorrect inputs/outputs configuration, see the KDoc for details") abstract class NonCacheableIntegrationTest : Test() -val integrationTest by tasks.register("integrationTest") { +val integrationTest by tasks.registering(NonCacheableIntegrationTest::class) { maxHeapSize = "2G" description = "Runs integration tests." group = "verification" From d5161141bda93d6eafad39329de2a7f06bf68ceb Mon Sep 17 00:00:00 2001 From: aSemy <897017+aSemy@users.noreply.github.com> Date: Thu, 23 Feb 2023 20:14:17 +0100 Subject: [PATCH 45/58] rm old shadow plugin dependency Co-authored-by: Goooler --- buildSrc/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index f4d0680f76..dc2175faca 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -22,7 +22,6 @@ dependencies { // This should be the only place that Gradle plugin versions are defined, so they are aligned across all build scripts implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion") - implementation("com.github.jengelman.gradle.plugins:shadow:2.0.4") implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.12.1") implementation("io.github.gradle-nexus:publish-plugin:1.1.0") From f348661a6693c12dc986dbf2d05a9cdd765e219f Mon Sep 17 00:00:00 2001 From: aSemy <897017+aSemy@users.noreply.github.com> Date: Fri, 24 Feb 2023 10:21:08 +0100 Subject: [PATCH 46/58] replace star import with explicit import Co-authored-by: Goooler --- buildSrc/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index dc2175faca..cc2407ba13 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,4 +1,4 @@ -import java.util.* +import java.util.Properties plugins { `kotlin-dsl` From 6801a77ea59f754de2b647bd6138d92986c7db11 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:13:47 +0100 Subject: [PATCH 47/58] restore Dokka version to 1.7.20 --- buildSrc/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index cc2407ba13..7e99807ea6 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -25,6 +25,6 @@ dependencies { implementation("gradle.plugin.com.github.johnrengelman:shadow:7.1.2") implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.12.1") implementation("io.github.gradle-nexus:publish-plugin:1.1.0") - implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.7.10") + implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.7.20") implementation("com.gradle.publish:plugin-publish-plugin:0.20.0") } From 0b6a9dbdbd85500164c7bdcc35d9fd2d2c7a5a17 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:45:53 +0100 Subject: [PATCH 48/58] move common Java config into a new convention plugin, and apply it in both the kotlin-jvm.gradle.kts convention and the Gradle Plugin project --- .../conventions/base-java.gradle.kts | 25 +++++++++++++++++++ .../conventions/kotlin-jvm.gradle.kts | 8 +----- runners/gradle-plugin/build.gradle.kts | 1 + 3 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts new file mode 100644 index 0000000000..acc0b078bf --- /dev/null +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts @@ -0,0 +1,25 @@ +package org.jetbrains.conventions + +/** + * Base configuration for Java projects. + * + * This convention plugin contains shared Java config for both the [KotlinJvmPlugin] convention plugin and + * the Gradle Plugin subproject (which cannot have the `kotlin("jvm")` plugin applied). + */ + +plugins { + `java` +} + +java { + toolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } +} + +plugins.withType().configureEach { + // enable the sources JAR if this project will be published + java { + withSourcesJar() + } +} diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index 672dbf243d..4d83ed53d7 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -5,6 +5,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("org.jetbrains.conventions.base") + id("org.jetbrains.conventions.base-java") kotlin("jvm") } @@ -24,12 +25,5 @@ tasks.withType().configureEach { allWarningsAsErrors = true languageVersion = language_version apiVersion = language_version - jvmTarget = "1.8" } } - -// Gradle metadata -java { - withSourcesJar() - targetCompatibility = JavaVersion.VERSION_1_8 -} diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index b3bd44e13f..3e416bcb03 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -4,6 +4,7 @@ import org.jetbrains.* plugins { `kotlin-dsl` org.jetbrains.conventions.`maven-publish` + org.jetbrains.conventions.`base-java` id("com.gradle.plugin-publish") } From 7c49e099837b3a605e7022d6684c2ddb166831ac Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:46:05 +0100 Subject: [PATCH 49/58] tidy up compiler args --- .../kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index 4d83ed53d7..a95ec409c8 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -15,12 +15,10 @@ val language_version: String by project tasks.withType().configureEach { kotlinOptions { - freeCompilerArgs = freeCompilerArgs + listOf( + freeCompilerArgs += listOf( "-opt-in=kotlin.RequiresOptIn", "-Xjsr305=strict", "-Xskip-metadata-version-check", - // need 1.4 support, otherwise there might be problems with Gradle 6.x (it's bundling Kotlin 1.4) - "-Xsuppress-version-warnings" ) allWarningsAsErrors = true languageVersion = language_version From 27c639c08982ac1e18a312f79c8764d2934e33c3 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:47:53 +0100 Subject: [PATCH 50/58] restore suppress-version-warnings --- .../main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts index a95ec409c8..bd33df22e5 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/kotlin-jvm.gradle.kts @@ -19,6 +19,8 @@ tasks.withType().configureEach { "-opt-in=kotlin.RequiresOptIn", "-Xjsr305=strict", "-Xskip-metadata-version-check", + // need 1.4 support, otherwise there might be problems with Gradle 6.x (it's bundling Kotlin 1.4) + "-Xsuppress-version-warnings" ) allWarningsAsErrors = true languageVersion = language_version From 72126952de831efe6fae7b04fe0ef23cb5dd1ea7 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 22:56:34 +0100 Subject: [PATCH 51/58] remove unused import --- runners/gradle-plugin/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/runners/gradle-plugin/build.gradle.kts b/runners/gradle-plugin/build.gradle.kts index 0f21bfbfe9..89601c690a 100644 --- a/runners/gradle-plugin/build.gradle.kts +++ b/runners/gradle-plugin/build.gradle.kts @@ -1,4 +1,3 @@ -import org.gradle.configurationcache.extensions.serviceOf import org.jetbrains.* plugins { From f1dcf92bd4bec1eb5b7ef4797e875d614ece1e69 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 28 Feb 2023 23:02:59 +0100 Subject: [PATCH 52/58] update API dump --- runners/gradle-plugin/api/gradle-plugin.api | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/runners/gradle-plugin/api/gradle-plugin.api b/runners/gradle-plugin/api/gradle-plugin.api index 02ee28cca9..fead39f93b 100644 --- a/runners/gradle-plugin/api/gradle-plugin.api +++ b/runners/gradle-plugin/api/gradle-plugin.api @@ -22,12 +22,12 @@ public abstract class org/jetbrains/dokka/gradle/AbstractDokkaTask : org/gradle/ public fun ()V public final fun doFirst (Lgroovy/lang/Closure;)Lorg/gradle/api/Task; public final fun doFirst (Lorg/gradle/api/Action;)Lorg/gradle/api/Task; - public final fun getCacheRoot ()Lorg/gradle/api/provider/Property; + public abstract fun getCacheRoot ()Lorg/gradle/api/file/DirectoryProperty; public final fun getFailOnWarning ()Lorg/gradle/api/provider/Property; public final fun getModuleName ()Lorg/gradle/api/provider/Property; public final fun getModuleVersion ()Lorg/gradle/api/provider/Property; public final fun getOfflineMode ()Lorg/gradle/api/provider/Property; - public final fun getOutputDirectory ()Lorg/gradle/api/provider/Property; + public abstract fun getOutputDirectory ()Lorg/gradle/api/file/DirectoryProperty; public final fun getPlugins ()Lorg/gradle/api/artifacts/Configuration; public final fun getPluginsConfiguration ()Lorg/gradle/api/provider/ListProperty; public final fun getPluginsMapConfiguration ()Lorg/gradle/api/provider/MapProperty; @@ -45,23 +45,23 @@ public abstract class org/jetbrains/dokka/gradle/DokkaCollectorTask : org/jetbra } public abstract interface class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { - public abstract fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; + public abstract fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Lorg/gradle/api/provider/Provider; } public final class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$CompactInParent : org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { public static final field INSTANCE Lorg/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$CompactInParent; - public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; + public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Lorg/gradle/api/provider/Provider; } public final class org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$NoCopy : org/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout { public static final field INSTANCE Lorg/jetbrains/dokka/gradle/DokkaMultiModuleFileLayout$NoCopy; - public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Ljava/io/File; + public fun targetChildOutputDirectory (Lorg/jetbrains/dokka/gradle/DokkaMultiModuleTask;Lorg/jetbrains/dokka/gradle/AbstractDokkaTask;)Lorg/gradle/api/provider/Provider; } public abstract class org/jetbrains/dokka/gradle/DokkaMultiModuleTask : org/jetbrains/dokka/gradle/AbstractDokkaParentTask { public fun ()V public final fun getFileLayout ()Lorg/gradle/api/provider/Property; - public final fun getIncludes ()Lorg/gradle/api/file/ConfigurableFileCollection; + public abstract fun getIncludes ()Lorg/gradle/api/file/ConfigurableFileCollection; public fun getTaskDependencies ()Lorg/gradle/api/internal/tasks/TaskDependencyInternal; public synthetic fun getTaskDependencies ()Lorg/gradle/api/tasks/TaskDependency; } From 8fb03193978f9af293dffd0aaa1ab28e14f4d96a Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Wed, 1 Mar 2023 11:56:05 +0100 Subject: [PATCH 53/58] remove unnecessary MavenPublishPlugin check --- .../kotlin/org/jetbrains/conventions/base-java.gradle.kts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts index acc0b078bf..3addac741a 100644 --- a/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts +++ b/buildSrc/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts @@ -17,9 +17,6 @@ java { } } -plugins.withType().configureEach { - // enable the sources JAR if this project will be published - java { - withSourcesJar() - } +java { + withSourcesJar() } From 4024f36f00a0fc8d379b019cc6503fe04dd95e70 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:46:52 +0100 Subject: [PATCH 54/58] centralise repos in buildSrc --- buildSrc/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 7e99807ea6..45cd66754c 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -4,10 +4,6 @@ plugins { `kotlin-dsl` } -repositories { - gradlePluginPortal() -} - // TODO define versions in Gradle Version Catalog https://github.com/Kotlin/dokka/pull/2884 val properties = file("../gradle.properties").inputStream().use { Properties().apply { load(it) } From ff457206ecfecaef66da4fe594dd7c5f6b80eedc Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:47:07 +0100 Subject: [PATCH 55/58] set jvmToolchain in buildSrc --- buildSrc/build.gradle.kts | 8 +++++++- buildSrc/settings.gradle.kts | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 45cd66754c..79b6fffa8f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,9 +1,15 @@ -import java.util.Properties +import java.util.* plugins { `kotlin-dsl` } +kotlin { + jvmToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } +} + // TODO define versions in Gradle Version Catalog https://github.com/Kotlin/dokka/pull/2884 val properties = file("../gradle.properties").inputStream().use { Properties().apply { load(it) } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index 29744ec1bc..2144de34f9 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -1 +1,17 @@ rootProject.name = "buildSrc" + +pluginManagement { + repositories { + gradlePluginPortal() + mavenCentral() + } +} + +@Suppress("UnstableApiUsage") +dependencyResolutionManagement { + repositories { + mavenCentral() + google() + gradlePluginPortal() + } +} From 1bbbd9b67a86ec81106f4f64f9c3c5d4e082c663 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:56:17 +0100 Subject: [PATCH 56/58] set test Java Launcher toolchain to 11 --- integration-tests/gradle/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/integration-tests/gradle/build.gradle.kts b/integration-tests/gradle/build.gradle.kts index 7a649f172a..669c1c5e19 100644 --- a/integration-tests/gradle/build.gradle.kts +++ b/integration-tests/gradle/build.gradle.kts @@ -19,6 +19,11 @@ tasks.integrationTest { environment("DOKKA_VERSION", dokka_version) inputs.dir(file("projects")) dependsOnMavenLocalPublication() + + javaLauncher.set(javaToolchains.launcherFor { + // kotlinx.coroutines requires Java 11+ + languageVersion.set(JavaLanguageVersion.of(11)) + }) } tasks.clean { From d06036f243a3f0bf6a85aedfff498a241f2b3ee1 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 7 Mar 2023 16:57:11 +0100 Subject: [PATCH 57/58] rm unnecessary task (clean already deletes buildDir contents) --- integration-tests/gradle/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/integration-tests/gradle/build.gradle.kts b/integration-tests/gradle/build.gradle.kts index 669c1c5e19..3f3be54b9e 100644 --- a/integration-tests/gradle/build.gradle.kts +++ b/integration-tests/gradle/build.gradle.kts @@ -25,7 +25,3 @@ tasks.integrationTest { languageVersion.set(JavaLanguageVersion.of(11)) }) } - -tasks.clean { - delete(File(buildDir, "gradle-test-kit")) -} From ac58931ad9eaa99f2f50240e525125464828a076 Mon Sep 17 00:00:00 2001 From: Adam <897017+aSemy@users.noreply.github.com> Date: Tue, 7 Mar 2023 17:11:20 +0100 Subject: [PATCH 58/58] change java-version from 12 to 11 in snapshot workflows --- .github/workflows/gh-actions-artifacts-snapshots.yml | 6 +++--- .github/workflows/s3-snapshots.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/gh-actions-artifacts-snapshots.yml b/.github/workflows/gh-actions-artifacts-snapshots.yml index e073dae347..99b00636e3 100644 --- a/.github/workflows/gh-actions-artifacts-snapshots.yml +++ b/.github/workflows/gh-actions-artifacts-snapshots.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document coroutines uses: gradle/gradle-build-action@v2 @@ -44,7 +44,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document serialization uses: gradle/gradle-build-action@v2 @@ -70,7 +70,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document biojava-core uses: gradle/gradle-build-action@v2 diff --git a/.github/workflows/s3-snapshots.yml b/.github/workflows/s3-snapshots.yml index 43efbf6305..6a170211b0 100644 --- a/.github/workflows/s3-snapshots.yml +++ b/.github/workflows/s3-snapshots.yml @@ -18,7 +18,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document coroutines uses: gradle/gradle-build-action@v2 @@ -48,7 +48,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document serialization uses: gradle/gradle-build-action@v2 @@ -78,7 +78,7 @@ jobs: - uses: actions/setup-java@v3 with: distribution: 'zulu' - java-version: 12 + java-version: 11 cache: 'maven' - name: Document biojava-core uses: gradle/gradle-build-action@v2