Oliver.O
12/18/2025, 6:56 PMOliver.O
12/18/2025, 6:56 PMStack trace
org.gradle.internal.execution.WorkValidationException: Some problems were found with the configuration of task ':testBalloon-gradle-plugin:signPluginMavenPublication' (type 'Sign').
- Gradle detected a problem with the following location: '/Users/runner/work/testBalloon/testBalloon/testBalloon-gradle-plugin/build/libs/testBalloon-gradle-plugin-0.8.0-Beta1-K2.3.0-sources.jar.asc'.
Reason: Task ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' uses this output of task ':testBalloon-gradle-plugin:signPluginMavenPublication' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':testBalloon-gradle-plugin:signPluginMavenPublication' as an input of ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository'.
2. Declare an explicit dependency on ':testBalloon-gradle-plugin:signPluginMavenPublication' from ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' using Task#dependsOn.
3. Declare an explicit dependency on ':testBalloon-gradle-plugin:signPluginMavenPublication' from ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' using Task#mustRunAfter.
For more information, please refer to <https://docs.gradle.org/9.2.1/userguide/validation_problems.html#implicit_dependency> in the Gradle documentation.
- Gradle detected a problem with the following location: '/Users/runner/work/testBalloon/testBalloon/testBalloon-gradle-plugin/build/libs/testBalloon-gradle-plugin-0.8.0-Beta1-K2.3.0.jar.asc'.
Reason: Task ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' uses this output of task ':testBalloon-gradle-plugin:signPluginMavenPublication' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed.
Possible solutions:
1. Declare task ':testBalloon-gradle-plugin:signPluginMavenPublication' as an input of ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository'.
2. Declare an explicit dependency on ':testBalloon-gradle-plugin:signPluginMavenPublication' from ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' using Task#dependsOn.
3. Declare an explicit dependency on ':testBalloon-gradle-plugin:signPluginMavenPublication' from ':testBalloon-gradle-plugin:publishMavenPublicationToMavenCentralRepository' using Task#mustRunAfter.
For more information, please refer to <https://docs.gradle.org/9.2.1/userguide/validation_problems.html#implicit_dependency> in the Gradle documentation.
at org.gradle.internal.execution.WorkValidationException$BuilderWithSummary.build(WorkValidationException.java:137)
at org.gradle.internal.execution.WorkValidationException$BuilderWithSummary.get(WorkValidationException.java:119)
at org.gradle.internal.execution.impl.DefaultExecutionProblemHandler.throwValidationException(DefaultExecutionProblemHandler.java:96)
at org.gradle.internal.execution.impl.DefaultExecutionProblemHandler.handleReportedProblems(DefaultExecutionProblemHandler.java:81)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:60)
at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:40)
at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:76)
at org.gradle.internal.execution.steps.AbstractCaptureStateBeforeExecutionStep.execute(AbstractCaptureStateBeforeExecutionStep.java:45)
at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.executeWithNonEmptySources(AbstractSkipEmptyWorkStep.java:136)
at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:61)
at org.gradle.internal.execution.steps.AbstractSkipEmptyWorkStep.execute(AbstractSkipEmptyWorkStep.java:38)
at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:36)
at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:23)
at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:75)
at org.gradle.internal.execution.steps.HandleStaleOutputsStep.execute(HandleStaleOutputsStep.java:41)
at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.lambda$execute$0(AssignMutableWorkspaceStep.java:35)
at org.gradle.api.internal.tasks.execution.TaskExecution$4.withWorkspace(TaskExecution.java:297)
at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:31)
at org.gradle.internal.execution.steps.AssignMutableWorkspaceStep.execute(AssignMutableWorkspaceStep.java:22)
at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:40)
at org.gradle.internal.execution.steps.ChoosePipelineStep.execute(ChoosePipelineStep.java:23)
at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.lambda$execute$2(ExecuteWorkBuildOperationFiringStep.java:67)
at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:67)
at org.gradle.internal.execution.steps.ExecuteWorkBuildOperationFiringStep.execute(ExecuteWorkBuildOperationFiringStep.java:39)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:46)
at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:34)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:31)
at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:64)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:132)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:121)
at org.gradle.api.internal.tasks.execution.ProblemsTaskPathTrackingTaskExecuter.execute(ProblemsTaskPathTrackingTaskExecuter.java:41)
at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:74)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:209)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:166)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.DefaultNodeExecutor.executeLocalTaskNode(DefaultNodeExecutor.java:55)
at org.gradle.execution.plan.DefaultNodeExecutor.execute(DefaultNodeExecutor.java:34)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:343)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:339)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:84)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:339)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:328)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:459)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:376)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)mbonnin
12/18/2025, 7:01 PMtasks.withType(AbstractPublishToMaven).configureEach {
it.dependsOn(tasks.named("signPluginMavenPublication")
}mbonnin
12/18/2025, 7:01 PMmbonnin
12/18/2025, 7:02 PMtasks.withType(AbstractPublishToMaven::class.java).configureEach {
try {
it.dependsOn(tasks.named("signPluginMavenPublication")
} catch(_: Exception) {}
}
Probably worth catching the exception if the task doesn't existOliver.O
12/18/2025, 7:02 PMafterEvaluate as the task was not even there.mbonnin
12/18/2025, 7:02 PMmbonnin
12/18/2025, 7:03 PMOliver.O
12/18/2025, 7:04 PMNmcp does not create publications or apply theI have no idea about how to draw the owl.plugin. This must be done using other means.maven-publish
mbonnin
12/18/2025, 7:04 PMmbonnin
12/18/2025, 7:04 PMmbonnin
12/18/2025, 7:04 PMOliver.O
12/18/2025, 7:05 PMOliver.O
12/18/2025, 7:06 PMmbonnin
12/18/2025, 7:20 PMOliver.O
12/18/2025, 7:25 PMmbonnin
12/18/2025, 7:25 PMmbonnin
12/18/2025, 7:26 PMmbonnin
12/18/2025, 7:26 PMOliver.O
12/18/2025, 7:28 PMmbonnin
12/18/2025, 7:29 PMmbonnin
12/18/2025, 7:30 PMOliver.O
12/18/2025, 7:31 PMmbonnin
12/18/2025, 7:31 PMOliver.O
12/18/2025, 7:32 PMmbonnin
12/18/2025, 7:32 PMmbonnin
12/18/2025, 7:32 PMOliver.O
12/18/2025, 7:33 PMmbonnin
12/18/2025, 7:33 PMmbonnin
12/18/2025, 7:33 PMmbonnin
12/18/2025, 7:34 PMmbonnin
12/18/2025, 7:34 PMOliver.O
12/18/2025, 7:35 PMmbonnin
12/18/2025, 7:39 PM-SNAPSHOT and when the CI has a special env variable that drops it when doing a release. I kind of like it because it means only one commit to bump a version.Oliver.O
12/18/2025, 7:41 PM-SNAPSHOT has the disadvantage of also changing the caching. There is always some footgun waiting to fire...mbonnin
12/18/2025, 7:43 PMmbonnin
12/18/2025, 7:43 PMOliver.O
12/18/2025, 7:43 PMOliver.O
12/18/2025, 10:20 PMDeployment validation timed out after 900s. Last known state: PUBLISHINGAgain, thank you so much! It's a shame for Gradle to be violating their own rules in their own foundational plugin and then leave this unfixed since 2023. And I'm changing to tags as a publication trigger, that's way better given the state of affairs.
mbonnin
12/18/2025, 11:11 PM> Deployment validation timed out after 900s. Last known state: PUBLISHINGThis is fine π π
Oliver.O
12/18/2025, 11:13 PMmbonnin
12/18/2025, 11:13 PMmbonnin
12/18/2025, 11:14 PMmbonnin
12/18/2025, 11:14 PMmbonnin
12/18/2025, 11:14 PMOliver.O
12/18/2025, 11:15 PMSONATYPE_CLOSE_TIMEOUT_SECONDS=3600Oliver.O
12/18/2025, 11:15 PMmbonnin
12/18/2025, 11:17 PMmbonnin
12/18/2025, 11:17 PMmbonnin
12/18/2025, 11:17 PMmbonnin
12/18/2025, 11:17 PMOliver.O
12/18/2025, 11:19 PMOliver.O
12/18/2025, 11:20 PMmbonnin
12/18/2025, 11:23 PMOliver.O
12/18/2025, 11:23 PMmbonnin
12/18/2025, 11:24 PMmbonnin
12/18/2025, 11:25 PMmbonnin
12/18/2025, 11:25 PMmbonnin
12/18/2025, 11:26 PMOliver.O
12/18/2025, 11:26 PMmbonnin
12/18/2025, 11:26 PMOliver.O
12/18/2025, 11:27 PMOliver.O
12/18/2025, 11:30 PMmbonnin
12/18/2025, 11:32 PMOliver.O
12/18/2025, 11:33 PMOliver.O
12/19/2025, 4:22 PMbuild-logic/src/main/kotlin/BuildLogicPublishingBasePlugin.kt, in order to apply it to KMP modules as well, not just JVM modules. Does that make sense?mbonnin
12/19/2025, 4:22 PM