Skip to content

Commit

Permalink
Remove bintray publish plugins (#2364)
Browse files Browse the repository at this point in the history
* Bump binary-compatibility-validator to 0.8.0
  • Loading branch information
Goooler authored and vmishenev committed Apr 1, 2022
1 parent faf48e2 commit c8d980f
Show file tree
Hide file tree
Showing 16 changed files with 3 additions and 107 deletions.
8 changes: 0 additions & 8 deletions build.gradle.kts
Expand Up @@ -67,14 +67,6 @@ subprojects {
}
}

// Workaround for https://github.com/bintray/gradle-bintray-plugin/issues/267
// Manually disable bintray tasks added to the root project
tasks.whenTaskAdded {
if ("bintray" in name) {
enabled = false
}
}

println("Publication version: $dokka_version")
tasks.register<ValidatePublications>("validatePublications")

Expand Down
3 changes: 1 addition & 2 deletions buildSrc/build.gradle.kts
Expand Up @@ -7,8 +7,7 @@ repositories {
}

dependencies {
implementation("com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4")
implementation("com.github.jengelman.gradle.plugins:shadow:2.0.4")
implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.6.0")
implementation("org.jetbrains.kotlinx:binary-compatibility-validator:0.8.0")
implementation("io.github.gradle-nexus:publish-plugin:1.0.0")
}
15 changes: 0 additions & 15 deletions buildSrc/src/main/kotlin/org/jetbrains/DokkaPublicationChannel.kt
Expand Up @@ -6,20 +6,11 @@ import org.gradle.api.Project

enum class DokkaPublicationChannel {
SpaceDokkaDev,
BintrayKotlinDev,
BintrayKotlinEap,
BintrayKotlinDokka,
MavenCentral,
MavenCentralSnapshot;

val isSpaceRepository get() = this == SpaceDokkaDev

val isBintrayRepository
get() = when (this) {
BintrayKotlinDev, BintrayKotlinEap, BintrayKotlinDokka -> true
else -> false
}

val isMavenRepository
get() = when (this) {
MavenCentral, MavenCentralSnapshot -> true
Expand All @@ -31,17 +22,11 @@ enum class DokkaPublicationChannel {
MavenCentral -> listOf(DokkaVersionType.Release)
MavenCentralSnapshot -> listOf(DokkaVersionType.Snapshot)
SpaceDokkaDev -> listOf(DokkaVersionType.Release, DokkaVersionType.Dev, DokkaVersionType.MC, DokkaVersionType.Snapshot)
BintrayKotlinDev -> listOf(DokkaVersionType.Dev, DokkaVersionType.MC, DokkaVersionType.Snapshot)
BintrayKotlinEap -> listOf(DokkaVersionType.MC)
BintrayKotlinDokka -> listOf(DokkaVersionType.Release)
}

companion object {
fun fromPropertyString(value: String): DokkaPublicationChannel = when (value) {
"space-dokka-dev" -> SpaceDokkaDev
"bintray-kotlin-dev" -> BintrayKotlinDev
"bintray-kotlin-eap" -> BintrayKotlinEap
"bintray-kotlin-dokka" -> BintrayKotlinDokka
"maven-central-release" -> MavenCentral
"maven-central-snapshot" -> MavenCentralSnapshot
else -> throw IllegalArgumentException("Unknown dokka_publication_channel=$value")
Expand Down
20 changes: 0 additions & 20 deletions buildSrc/src/main/kotlin/org/jetbrains/ValidatePublications.kt
@@ -1,6 +1,5 @@
package org.jetbrains

import com.jfrog.bintray.gradle.BintrayExtension
import org.gradle.api.DefaultTask
import org.gradle.api.GradleException
import org.gradle.api.Project
Expand All @@ -9,12 +8,8 @@ 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
import org.gradle.kotlin.dsl.provideDelegate

open class ValidatePublications : DefaultTask() {
class MissingBintrayPublicationException(project: Project, publication: MavenPublication) : GradleException(
"Project ${project.path} has publication ${publication.name} that is not configured for bintray publication"
)

class UnpublishedProjectDependencyException(
project: Project, dependencyProject: Project
Expand All @@ -32,27 +27,12 @@ open class ValidatePublications : DefaultTask() {
.filterIsInstance<MavenPublication>()
.filter { it.version == project.dokkaVersion }
.forEach { publication ->
if (project.publicationChannels.any { it.isBintrayRepository }) {
checkPublicationIsConfiguredForBintray(subProject, publication)
}
checkProjectDependenciesArePublished(subProject)
subProject.assertPublicationVersion()
}
}
}

private fun checkPublicationIsConfiguredForBintray(project: Project, publication: MavenPublication) {
val bintrayExtension = project.extensions.findByType<BintrayExtension>()
?: throw MissingBintrayPublicationException(project, publication)

val isPublicationConfiguredForBintray = bintrayExtension.publications.orEmpty()
.any { publicationName -> publicationName == publication.name }

if (!isPublicationConfiguredForBintray) {
throw MissingBintrayPublicationException(project, publication)
}
}

private fun checkProjectDependenciesArePublished(project: Project) {
(project.configurations.findByName("implementation")?.allDependencies.orEmpty() +
project.configurations.findByName("api")?.allDependencies.orEmpty())
Expand Down
6 changes: 2 additions & 4 deletions buildSrc/src/main/kotlin/org/jetbrains/binaryCompatibility.kt
Expand Up @@ -16,14 +16,12 @@ internal object BinaryCompatibilityConfig {
}

internal fun Project.registerBinaryCompatibilityCheck(publicationName: String) {
publicationName.takeIf {
it !in BinaryCompatibilityConfig.ignoredPublications
}?.let {
if (publicationName !in BinaryCompatibilityConfig.ignoredPublications) {
if (tasks.findByName("apiBuild") == null) {
plugins.apply(kotlinx.validation.BinaryCompatibilityValidatorPlugin::class.java)
configure<ApiValidationExtension> {
ignoredProjects.addAll(
BinaryCompatibilityConfig.ignoredSubprojects.intersect(allprojects.map { it.name })
BinaryCompatibilityConfig.ignoredSubprojects.intersect(allprojects.map { it.name }.toSet())
)
}
}
Expand Down
48 changes: 0 additions & 48 deletions buildSrc/src/main/kotlin/org/jetbrains/publication.kt
@@ -1,16 +1,13 @@
package org.jetbrains

import com.github.jengelman.gradle.plugins.shadow.ShadowExtension
import com.jfrog.bintray.gradle.BintrayExtension
import kotlinx.validation.ApiValidationExtension
import org.gradle.api.Project
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.publish.maven.MavenPublication
import org.gradle.api.publish.maven.tasks.PublishToMavenRepository
import org.gradle.kotlin.dsl.*
import org.gradle.plugins.signing.SigningExtension
import org.jetbrains.DokkaPublicationChannel.*
import io.github.gradlenexus.publishplugin.NexusPublishExtension
import java.net.URI

class DokkaPublicationBuilder {
Expand Down Expand Up @@ -42,7 +39,6 @@ fun Project.registerDokkaArtifactPublication(publicationName: String, configure:
}
}

configureBintrayPublicationIfNecessary(publicationName)
configureSpacePublicationIfNecessary(publicationName)
configureSonatypePublicationIfNecessary(publicationName)
createDokkaPublishTaskIfNecessary()
Expand Down Expand Up @@ -88,50 +84,6 @@ fun Project.createDokkaPublishTaskIfNecessary() {
if (publicationChannels.any { it.isMavenRepository }) {
dependsOn(tasks.named("publishToSonatype"))
}

if (publicationChannels.any { it.isBintrayRepository }) {
dependsOn(tasks.named("bintrayUpload"))
}
}
}

fun Project.configureBintrayPublicationIfNecessary(vararg publications: String) {
if (publicationChannels.any { it.isBintrayRepository }) {
configureBintrayPublication(*publications)
}
}

private fun Project.configureBintrayPublication(vararg publications: String) {
extensions.configure<BintrayExtension>("bintray") {
user = System.getenv("BINTRAY_USER")
key = System.getenv("BINTRAY_KEY")
dryRun = System.getenv("BINTRAY_DRY_RUN") == "true" ||
project.properties["bintray_dry_run"] == "true"
pkg = PackageConfig().apply {
val bintrayPublicationChannels = publicationChannels.filter { it.isBintrayRepository }
if (bintrayPublicationChannels.size > 1) {
throw IllegalArgumentException(
"Only a single bintray repository can be used for publishing at once. Found $publicationChannels"
)
}

repo = when (bintrayPublicationChannels.single()) {
SpaceDokkaDev, MavenCentral, MavenCentralSnapshot -> throw IllegalStateException("${bintrayPublicationChannels.single()} is not a bintray repository")
BintrayKotlinDev -> "kotlin-dev"
BintrayKotlinEap -> "kotlin-eap"
BintrayKotlinDokka -> "dokka"
}

name = "dokka"
userOrg = "kotlin"
desc = "Dokka, the Kotlin documentation tool"
vcsUrl = "https://github.com/kotlin/dokka.git"
setLicenses("Apache-2.0")
version = VersionConfig().apply {
name = dokkaVersion
}
}
setPublications(*publications)
}
}

Expand Down
1 change: 0 additions & 1 deletion core/build.gradle.kts
Expand Up @@ -3,7 +3,6 @@ import org.jetbrains.registerDokkaArtifactPublication

plugins {
`maven-publish`
id("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion core/test-api/build.gradle.kts
Expand Up @@ -2,7 +2,6 @@ import org.jetbrains.registerDokkaArtifactPublication

plugins {
`maven-publish`
id("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion kotlin-analysis/build.gradle.kts
Expand Up @@ -3,7 +3,6 @@ import org.jetbrains.registerDokkaArtifactPublication
plugins {
id("com.github.johnrengelman.shadow")
`maven-publish`
id("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion kotlin-analysis/compiler-dependency/build.gradle.kts
Expand Up @@ -4,7 +4,6 @@ import org.jetbrains.registerDokkaArtifactPublication
plugins {
id("com.github.johnrengelman.shadow")
`maven-publish`
id("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion kotlin-analysis/intellij-dependency/build.gradle.kts
Expand Up @@ -4,7 +4,6 @@ import org.jetbrains.registerDokkaArtifactPublication
plugins {
id("com.github.johnrengelman.shadow")
`maven-publish`
id("com.jfrog.bintray")
}

repositories {
Expand Down
1 change: 0 additions & 1 deletion plugins/build.gradle.kts
Expand Up @@ -4,7 +4,6 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent
subprojects {
apply {
plugin("maven-publish")
plugin("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion runners/build.gradle.kts
@@ -1,7 +1,6 @@
subprojects {
apply {
plugin("maven-publish")
plugin("com.jfrog.bintray")
}

tasks.processResources {
Expand Down
1 change: 0 additions & 1 deletion runners/cli/build.gradle.kts
Expand Up @@ -3,7 +3,6 @@ import org.jetbrains.registerDokkaArtifactPublication

plugins {
id("com.github.johnrengelman.shadow")
id("com.jfrog.bintray")
}

dependencies {
Expand Down
1 change: 0 additions & 1 deletion runners/gradle-plugin/build.gradle.kts
Expand Up @@ -97,7 +97,6 @@ tasks.withType<PublishToMavenRepository>().configureEach {
}

afterEvaluate { // Workaround for an interesting design choice https://github.com/gradle/gradle/blob/c4f935f77377f1783f70ec05381c8182b3ade3ea/subprojects/plugin-development/src/main/java/org/gradle/plugin/devel/plugins/MavenPluginPublishPlugin.java#L49
configureBintrayPublicationIfNecessary("pluginMaven", "dokkaGradlePluginPluginMarkerMaven")
configureSpacePublicationIfNecessary("pluginMaven", "dokkaGradlePluginPluginMarkerMaven")
configureSonatypePublicationIfNecessary("pluginMaven", "dokkaGradlePluginPluginMarkerMaven")
createDokkaPublishTaskIfNecessary()
Expand Down
1 change: 0 additions & 1 deletion settings.gradle.kts
Expand Up @@ -43,7 +43,6 @@ pluginManagement {
plugins {
id("org.jetbrains.kotlin.jvm") version kotlin_version
id("com.github.johnrengelman.shadow") version "5.2.0"
id("com.jfrog.bintray") version "1.8.5"
id("com.gradle.plugin-publish") version "0.20.0"
}
}

0 comments on commit c8d980f

Please sign in to comment.