diff options
Diffstat (limited to 'build-logic/src/main/kotlin')
26 files changed, 295 insertions, 519 deletions
diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.base.gradle.kts index b485520a..407a9800 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/base.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.base.gradle.kts @@ -2,9 +2,7 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -package org.jetbrains.conventions - -import org.jetbrains.DokkaBuildProperties +import dokkabuild.DokkaBuildProperties /** * A convention plugin that sets up common config and sensible defaults for all subprojects. @@ -16,12 +14,7 @@ plugins { base } -val dokkaBuildProperties: DokkaBuildProperties = extensions.create(DokkaBuildProperties.EXTENSION_NAME) - -if (project != rootProject) { - project.group = rootProject.group - project.version = rootProject.version -} +extensions.create<DokkaBuildProperties>(DokkaBuildProperties.EXTENSION_NAME) tasks.withType<AbstractArchiveTask>().configureEach { // https://docs.gradle.org/current/userguide/working_with_files.html#sec:reproducible_archives diff --git a/build-logic/src/main/kotlin/dokkabuild.gradle-plugin.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.gradle-plugin.gradle.kts new file mode 100644 index 00000000..e61cc062 --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.gradle-plugin.gradle.kts @@ -0,0 +1,35 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + id("org.gradle.kotlin.kotlin-dsl") + id("dokkabuild.java") + kotlin("jvm") + id("dokkabuild.publish-gradle-plugin") +} + +// org.gradle.kotlin.kotlin-dsl sets languageVersion and apiVersion to 1.8 by default starting from Gradle 8. +// As we need to be compatible with previous Gradle versions, we need to set it back to 1.4. +// Note: we should do it directly on tasks and not via top-level `kotlin.compilerOptions` +// because `kotlin-dsl plugin` declares them on task level, and so top-level config is overridden +tasks.withType<KotlinCompile>().configureEach { + compilerOptions { + languageVersion.set(dokkaBuild.kotlinLanguageLevel) + apiVersion.set(dokkaBuild.kotlinLanguageLevel) + + freeCompilerArgs.addAll( + // need 1.4 support, otherwise there might be problems + // with Gradle 6.x (it's bundling Kotlin 1.4) + "-Xsuppress-version-warnings", + "-Xjsr305=strict", + "-Xskip-metadata-version-check", + ) + } +} + +tasks.validatePlugins { + enableStricterValidation.set(true) +} diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.java.gradle.kts index 9270be47..16cb7ebc 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/base-java.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.java.gradle.kts @@ -2,17 +2,12 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -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). + * Base configuration for Java/JVM projects. */ plugins { - id("org.jetbrains.conventions.base") + id("dokkabuild.base") java } @@ -20,7 +15,6 @@ java { toolchain { languageVersion.set(dokkaBuild.mainJavaVersion) } - withSourcesJar() } tasks.withType<Test>().configureEach { @@ -40,3 +34,7 @@ tasks.withType<Test>().configureEach { dependencies { testImplementation(platform(libs.junit.bom)) } + +tasks.processResources { + duplicatesStrategy = DuplicatesStrategy.FAIL +} diff --git a/build-logic/src/main/kotlin/dokkabuild.kotlin-jvm.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.kotlin-jvm.gradle.kts new file mode 100644 index 00000000..796ce6c9 --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.kotlin-jvm.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + id("dokkabuild.java") + kotlin("jvm") +} + +val rootProjectsWithoutDependencyOnDokkaCore = listOf("dokka-integration-tests") + +kotlin { + explicitApi() + compilerOptions { + allWarningsAsErrors.set(true) + languageVersion.set(dokkaBuild.kotlinLanguageLevel) + apiVersion.set(dokkaBuild.kotlinLanguageLevel) + + // These projects know nothing about the `@InternalDokkaApi` annotation, so the Kotlin compiler + // will complain about an unresolved opt-in requirement marker and fail the build if it's not excluded. + if (rootProject.name !in rootProjectsWithoutDependencyOnDokkaCore) { + optIn.addAll( + "kotlin.RequiresOptIn", + "org.jetbrains.dokka.InternalDokkaApi" + ) + } + + freeCompilerArgs.addAll( + // need 1.4 support, otherwise there might be problems + // with Gradle 6.x (it's bundling Kotlin 1.4) + "-Xsuppress-version-warnings", + "-Xjsr305=strict", + "-Xskip-metadata-version-check", + ) + } +} diff --git a/build-logic/src/main/kotlin/dokkabuild.publish-base.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.publish-base.gradle.kts new file mode 100644 index 00000000..85fca751 --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.publish-base.gradle.kts @@ -0,0 +1,95 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + `maven-publish` + signing +} + +publishing { + repositories { + maven { + name = "mavenCentral" + url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials { + username = System.getenv("DOKKA_SONATYPE_USER") + password = System.getenv("DOKKA_SONATYPE_PASSWORD") + } + } + maven { + name = "spaceDev" + url = uri("https://maven.pkg.jetbrains.space/kotlin/p/dokka/dev") + credentials { + username = System.getenv("DOKKA_SPACE_PACKAGES_USER") + password = System.getenv("DOKKA_SPACE_PACKAGES_SECRET") + } + } + maven { + name = "spaceTest" + url = uri("https://maven.pkg.jetbrains.space/kotlin/p/dokka/test") + credentials { + username = System.getenv("DOKKA_SPACE_PACKAGES_USER") + password = System.getenv("DOKKA_SPACE_PACKAGES_SECRET") + } + } + // Publish to a project-local Maven directory, for verification. To test, run: + // ./gradlew publishAllPublicationsToProjectLocalRepository + // and check $rootDir/build/maven-project-local + maven { + name = "projectLocal" + url = uri(rootProject.layout.buildDirectory.dir("maven-project-local")) + } + } + + publications.withType<MavenPublication>().configureEach { + pom { + name.convention("Dokka ${project.name}") + description.convention("Dokka is an API documentation engine for Kotlin") + url.convention("https://github.com/Kotlin/dokka") + + licenses { + license { + name.convention("The Apache Software License, Version 2.0") + url.convention("https://www.apache.org/licenses/LICENSE-2.0.txt") + distribution.convention("repo") + } + } + + developers { + developer { + id.convention("JetBrains") + name.convention("JetBrains Team") + organization.convention("JetBrains") + organizationUrl.convention("https://www.jetbrains.com") + } + } + + scm { + connection.convention("scm:git:git://github.com/Kotlin/dokka.git") + url.convention("https://github.com/Kotlin/dokka") + } + } + } +} + +signing { + useInMemoryPgpKeys( + System.getenv("DOKKA_SIGN_KEY_ID")?.takeIf(String::isNotBlank), + System.getenv("DOKKA_SIGN_KEY")?.takeIf(String::isNotBlank), + System.getenv("DOKKA_SIGN_KEY_PASSPHRASE")?.takeIf(String::isNotBlank), + ) + sign(publishing.publications) + setRequired(provider { !project.version.toString().endsWith("-SNAPSHOT") }) +} + +// This is a hack for a Gradle 8 problem, see https://github.com/gradle/gradle/issues/26091 +// +// Fails with the following error otherwise: +// > Task ':runner-gradle-plugin-classic:publishDokkaPluginMarkerMavenPublicationToSpaceTestRepository' uses +// > this output of task ':runner-gradle-plugin-classic:signPluginMavenPublication' without declaring an +// > explicit or implicit dependency. +tasks.withType<AbstractPublishToMaven>().configureEach { + val signingTasks = tasks.withType<Sign>() + mustRunAfter(signingTasks) +} diff --git a/build-logic/src/main/kotlin/dokkabuild.publish-gradle-plugin.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.publish-gradle-plugin.gradle.kts new file mode 100644 index 00000000..93718909 --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.publish-gradle-plugin.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import dokkabuild.PublicationName + +plugins { + id("dokkabuild.publish-base") + id("com.gradle.plugin-publish") +} + +@Suppress("UnstableApiUsage") +gradlePlugin { + website.set("https://kotl.in/dokka") + vcsUrl.set("https://github.com/kotlin/dokka.git") +} + +// com.gradle.plugin-publish configures publication in afterEvaluate block +// so to be able to configure it directly in build scripts (f.e. to change artifactId) we need to register it earlier +// more info: https://docs.gradle.org/current/userguide/java_gradle_plugin.html#maven_publish_plugin +publishing.publications.register<MavenPublication>(PublicationName.GRADLE_PLUGIN) + +// com.gradle.plugin-publish configures javadoc only for the main plugin artifact, +// so we need to link it manually to other publications +// specifically with artifact `org.jetbrains.dokka.gradle.plugin` +// which is used to resolve plugins via `plugins { id("org.jetbrains.dokka") }` +// it's not needed for gradle plugin portal, but needed for Maven Central +// NOTE: it should be configured in `afterEvaluate` +// because `javadocJar` task is created in `afterEvaluate` block in `com.gradle.plugin-publish` plugin +afterEvaluate { + publishing.publications.withType<MavenPublication>() + .matching { it.name != PublicationName.GRADLE_PLUGIN } + .configureEach { + artifact(tasks.named("javadocJar")) + } +} diff --git a/build-logic/src/main/kotlin/dokkabuild.publish-jvm.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.publish-jvm.gradle.kts new file mode 100644 index 00000000..6c7a978d --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.publish-jvm.gradle.kts @@ -0,0 +1,19 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import dokkabuild.PublicationName + +plugins { + id("dokkabuild.java") + id("dokkabuild.publish-base") +} + +java { + withSourcesJar() + withJavadocJar() +} + +publishing.publications.register<MavenPublication>(PublicationName.JVM) { + from(components["java"]) +} diff --git a/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts new file mode 100644 index 00000000..7abb3376 --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild.publish-shadow.gradle.kts @@ -0,0 +1,31 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +import dokkabuild.PublicationName + +plugins { + id("dokkabuild.java") + id("dokkabuild.publish-base") + id("com.github.johnrengelman.shadow") +} + +java { + withSourcesJar() + withJavadocJar() +} + +tasks.shadowJar { + // separate directory because otherwise Gradle complains about multiple tasks writing into the same file + destinationDirectory.set(project.layout.buildDirectory.dir("shadowLibs")) + // removes the `-all` classifier from the artifact name + archiveClassifier.set("") +} + +publishing.publications.register<MavenPublication>(PublicationName.JVM) { + // shadow.component call should be after the shadowJar task is configured in a build script, + // because if not, shadow uses the wrong archiveFile (as we change destinationDirectory and archiveClassifier) + shadow.component(this) + artifact(tasks.named("sourcesJar")) + artifact(tasks.named("javadocJar")) +} diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts index 198194b1..c172c4e3 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts @@ -2,8 +2,6 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -package org.jetbrains.conventions - import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE /** @@ -11,7 +9,7 @@ import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE */ plugins { - id("org.jetbrains.conventions.base") + id("dokkabuild.base") } /** Apply a distinct attribute to the incoming/outgoing configuration */ diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.setup-maven-cli.gradle.kts index f07ff98d..13d311a1 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/maven-cli-setup.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.setup-maven-cli.gradle.kts @@ -2,8 +2,6 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -package org.jetbrains.conventions - import org.gradle.kotlin.dsl.support.serviceOf /** @@ -45,7 +43,7 @@ val mavenCliSetupExtension = mavenInstallDir.convention(layout.buildDirectory.dir("apache-maven")) val isWindowsProvider = - providers.systemProperty("os.name").map { "win" in it.toLowerCase() } + providers.systemProperty("os.name").map { "win" in it.lowercase() } mvn.convention( providers.zip(mavenInstallDir, isWindowsProvider) { mavenInstallDir, isWindows -> diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.test-integration.gradle.kts index 75e27a62..16bf8620 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-integration-test.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.test-integration.gradle.kts @@ -2,13 +2,11 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -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") + id("dokkabuild.kotlin-jvm") } val integrationTestSourceSet: SourceSet = sourceSets.create("integrationTest") { @@ -59,7 +57,6 @@ val integrationTest by tasks.registering(NonCacheableIntegrationTest::class) { maxParallelForks = parallelism } - environment( "isExhaustive", project.properties["dokka_integration_test_is_exhaustive"]?.toString()?.toBoolean() @@ -75,7 +72,3 @@ val integrationTest by tasks.registering(NonCacheableIntegrationTest::class) { showStackTraces = true } } - -tasks.check { - dependsOn(integrationTest) -} diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/base-unit-test.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.test-k2.gradle.kts index 4911499d..d1467dab 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/base-unit-test.gradle.kts +++ b/build-logic/src/main/kotlin/dokkabuild.test-k2.gradle.kts @@ -2,15 +2,13 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -package org.jetbrains.conventions - /** - * Utility to run ynit tests for K1 and K2 (analysis API). + * Utility to run unit tests for K1 and K2 (analysis API). */ plugins { - id("org.jetbrains.conventions.base") - id("org.jetbrains.conventions.base-java") + id("dokkabuild.base") + id("dokkabuild.java") } val descriptorsTestConfiguration: Configuration by configurations.creating { diff --git a/build-logic/src/main/kotlin/org/jetbrains/DokkaBuildProperties.kt b/build-logic/src/main/kotlin/dokkabuild/DokkaBuildProperties.kt index 6d1e0ae4..ad39177c 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/DokkaBuildProperties.kt +++ b/build-logic/src/main/kotlin/dokkabuild/DokkaBuildProperties.kt @@ -2,7 +2,7 @@ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ -package org.jetbrains +package dokkabuild import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory diff --git a/build-logic/src/main/kotlin/dokkabuild/PublicationUtils.kt b/build-logic/src/main/kotlin/dokkabuild/PublicationUtils.kt new file mode 100644 index 00000000..dd83cf5f --- /dev/null +++ b/build-logic/src/main/kotlin/dokkabuild/PublicationUtils.kt @@ -0,0 +1,27 @@ +/* + * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. + */ + +package dokkabuild + +import org.gradle.api.Project +import org.gradle.api.publish.PublishingExtension +import org.gradle.api.publish.maven.MavenPublication +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.withType + +object PublicationName { + const val JVM = "jvm" + const val GRADLE_PLUGIN = "pluginMaven" +} + +fun Project.overridePublicationArtifactId( + artifactId: String, + publicationName: String = PublicationName.JVM +) { + extensions.configure<PublishingExtension> { + publications.withType<MavenPublication>().named(publicationName) { + this.artifactId = artifactId + } + } +} diff --git a/build-logic/src/main/kotlin/org/jetbrains/internal/gradleKotlinDslAccessors.kt b/build-logic/src/main/kotlin/dokkabuild/internal/GradleKotlinDslAccessors.kt index 6558568c..7b854f16 100644 --- a/build-logic/src/main/kotlin/org/jetbrains/internal/gradleKotlinDslAccessors.kt +++ b/build-logic/src/main/kotlin/dokkabuild/internal/GradleKotlinDslAccessors.kt @@ -8,7 +8,7 @@ package org.gradle.kotlin.dsl // for convenience use a default package for gradl import org.gradle.api.Project import org.gradle.accessors.dm.LibrariesForLibs -import org.jetbrains.DokkaBuildProperties +import dokkabuild.DokkaBuildProperties /* * Utility functions for accessing Gradle extensions that are created by convention plugins. diff --git a/build-logic/src/main/kotlin/org/jetbrains/DokkaPublicationChannel.kt b/build-logic/src/main/kotlin/org/jetbrains/DokkaPublicationChannel.kt deleted file mode 100644 index 34981302..00000000 --- a/build-logic/src/main/kotlin/org/jetbrains/DokkaPublicationChannel.kt +++ /dev/null @@ -1,66 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -@file:Suppress("LocalVariableName") - -package org.jetbrains - -import org.gradle.api.Project - -enum class DokkaPublicationChannel { - SPACE_DOKKA_DEV, - MAVEN_CENTRAL, - MAVEN_CENTRAL_SNAPSHOT, - GRADLE_PLUGIN_PORTAL; - - val acceptedDokkaVersionTypes: List<DokkaVersionType> - get() = when(this) { - MAVEN_CENTRAL -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC) - MAVEN_CENTRAL_SNAPSHOT -> listOf(DokkaVersionType.SNAPSHOT) - SPACE_DOKKA_DEV -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC, DokkaVersionType.DEV, DokkaVersionType.SNAPSHOT) - GRADLE_PLUGIN_PORTAL -> listOf(DokkaVersionType.RELEASE, DokkaVersionType.RC) - } - - fun isSpaceRepository() = this == SPACE_DOKKA_DEV - - fun isMavenRepository() = this == MAVEN_CENTRAL || this == MAVEN_CENTRAL_SNAPSHOT - - fun isGradlePluginPortal() = this == GRADLE_PLUGIN_PORTAL - - companion object { - fun fromPropertyString(value: String): DokkaPublicationChannel = when (value) { - "space-dokka-dev" -> SPACE_DOKKA_DEV - "maven-central-release" -> MAVEN_CENTRAL - "maven-central-snapshot" -> MAVEN_CENTRAL_SNAPSHOT - "gradle-plugin-portal" -> GRADLE_PLUGIN_PORTAL - else -> throw IllegalArgumentException("Unknown dokka_publication_channel=$value") - } - } -} - -val Project.publicationChannels: Set<DokkaPublicationChannel> - get() { - val publicationChannel = this.properties["dokka_publication_channel"]?.toString() - val publicationChannels = this.properties["dokka_publication_channels"]?.toString() - if (publicationChannel != null && publicationChannels != null) { - throw IllegalArgumentException( - "Only one of dokka_publication_channel and dokka_publication_channel*s* can be set. Found: \n" + - "dokka_publication_channel=$publicationChannel\n" + - "dokka_publication_channels=$publicationChannels" - ) - } - - if (publicationChannel != null) { - return setOf(DokkaPublicationChannel.fromPropertyString(publicationChannel)) - } - - if (publicationChannels != null) { - return publicationChannels.split("&").map { channel -> - DokkaPublicationChannel.fromPropertyString(channel) - }.toSet() - } - - return emptySet() - } - diff --git a/build-logic/src/main/kotlin/org/jetbrains/DokkaVersion.kt b/build-logic/src/main/kotlin/org/jetbrains/DokkaVersion.kt deleted file mode 100644 index 9028e8cf..00000000 --- a/build-logic/src/main/kotlin/org/jetbrains/DokkaVersion.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains - -import org.gradle.api.Project -import org.gradle.kotlin.dsl.extra -import org.gradle.kotlin.dsl.provideDelegate - -@Suppress("LocalVariableName") // property name with underscore as taken from gradle.properties -fun Project.configureDokkaVersion(): String { - val dokka_version: String? by this.extra - return checkNotNull(dokka_version) -} - -val Project.dokkaVersion: String - get() = configureDokkaVersion() - -val Project.dokkaVersionType: DokkaVersionType? - get() = DokkaVersionType.values().find { - it.suffix.matches(dokkaVersion.substringAfter("-", "")) - } diff --git a/build-logic/src/main/kotlin/org/jetbrains/DokkaVersionType.kt b/build-logic/src/main/kotlin/org/jetbrains/DokkaVersionType.kt deleted file mode 100644 index 7ceb595b..00000000 --- a/build-logic/src/main/kotlin/org/jetbrains/DokkaVersionType.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains - -enum class DokkaVersionType(val suffix: Regex) { - RELEASE("^$".toRegex()), - RC("RC\\d?".toRegex()), - SNAPSHOT("SNAPSHOT".toRegex()), - DEV("dev-\\d+".toRegex()); -} diff --git a/build-logic/src/main/kotlin/org/jetbrains/ValidatePublications.kt b/build-logic/src/main/kotlin/org/jetbrains/ValidatePublications.kt deleted file mode 100644 index 293ae96b..00000000 --- a/build-logic/src/main/kotlin/org/jetbrains/ValidatePublications.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. - */ - -package org.jetbrains - -import org.gradle.api.DefaultTask -import org.gradle.api.GradleException -import org.gradle.api.Project -import org.gradle.api.artifacts.Dependency -import org.gradle.api.artifacts.ProjectDependency -import org.gradle.api.publish.PublishingExtension -import org.gradle.api.publish.maven.MavenPublication -import org.gradle.api.tasks.TaskAction -import org.gradle.kotlin.dsl.findByType - -open class ValidatePublications : DefaultTask() { - - init { - group = "verification" - project.tasks.named("check") { - dependsOn(this@ValidatePublications) - } - } - - @TaskAction - fun validatePublicationConfiguration() { - project.subprojects.forEach { subProject -> - val publishing = subProject.extensions.findByType<PublishingExtension>() ?: return@forEach - publishing.publications - .filterIsInstance<MavenPublication>() - .filter { it.version == project.dokkaVersion } - .forEach { _ -> - subProject.assertPublicationVersion() - } - } - } - - private fun Project.assertPublicationVersion() { - val versionTypeMatchesPublicationChannels = publicationChannels.all { publicationChannel -> - publicationChannel.acceptedDokkaVersionTypes.any { acceptedVersionType -> - acceptedVersionType == dokkaVersionType - } - } - if (!versionTypeMatchesPublicationChannels) { - throw AssertionError("Wrong version $dokkaVersion for configured publication channels $publicationChannels") - } - } -} diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts b/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts deleted file mode 100644 index 5abd8575..00000000 --- a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka.gradle.kts +++ /dev/null @@ -1,17 +0,0 @@ -/* |
