From 7f751c5d611cb95a40919428ff9e01a248d6a170 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 28 Jun 2023 14:14:28 +0200 Subject: [PATCH] Fix signing in :kotlin-annotation-processing-embeddable Problem is reproducible only when singing is enabled. Register dependencies between publication and signing tasks. It looks like signing tasks have same output and need to be registered in all publications. Error: * What went wrong: Some problems were found with the configuration of task ':kotlin-annotation-processing-embeddable:publishMainPublicationToMavenLocal' (type 'PublishToMavenLocal'). - Gradle detected a problem with the following location: '/Users/Shared/Projects/kotlin/plugins/kapt3/kotlin-annotation-processing-embeddable/build/libs/kotlin-annotation-processing-embeddable-1.9.255-SNAPSHOT-sources.jar.asc'. Reason: Task ':kotlin-annotation-processing-embeddable:publishMainPublicationToMavenLocal' uses this output of task ':kotlin-annotation-processing-embeddable:signGradleCompatPublication' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. Reproduce: gradle :kotlin-annotation-processing-embeddable:publishToMavenLocal -Psigning.gnupg.keyName=* -Psigning.gnupg.passphrase=* -PsigningRequired=true KTI-1282 --- .../build.gradle.kts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/kapt3/kotlin-annotation-processing-embeddable/build.gradle.kts b/plugins/kapt3/kotlin-annotation-processing-embeddable/build.gradle.kts index 6e5bb8aa99a..928009535b6 100644 --- a/plugins/kapt3/kotlin-annotation-processing-embeddable/build.gradle.kts +++ b/plugins/kapt3/kotlin-annotation-processing-embeddable/build.gradle.kts @@ -2,6 +2,7 @@ import org.gradle.api.publish.internal.PublicationInternal import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeAsciiOnly import plugins.KotlinBuildPublishingPlugin.Companion.ADHOC_COMPONENT_NAME import plugins.configureKotlinPomAttributes +import plugins.signLibraryPublication description = "Annotation Processor for Kotlin (for using with embeddable compiler)" @@ -26,6 +27,21 @@ val gradleCompatPublication = publications.register("gradleCom (this as PublicationInternal<*>).isAlias = true configureKotlinPomAttributes(project) } +if (signLibraryPublication) { + tasks.named("publishGradleCompatPublicationToMavenLocal").configure { + dependsOn("signMainPublication") + } + tasks.named("publishGradleCompatPublicationToMavenRepository").configure { + dependsOn("signMainPublication") + } + tasks.named("publishMainPublicationToMavenLocal").configure { + dependsOn("signGradleCompatPublication") + } + tasks.named("publishMainPublicationToMavenRepository").configure { + dependsOn("signGradleCompatPublication") + } +} + val targetName = "${gradleCompatPublication.name.capitalizeAsciiOnly()}Publication" configureSbom( target = targetName,