spring-projects / spring-statemachine

Spring Statemachine is a framework for application developers to use state machine concepts with Spring.
1.51k stars 598 forks source link

Upgrade gradle 8.6 #1145

Closed jvalkeal closed 3 months ago

jvalkeal commented 3 months ago

Reopen as we probably need to revert back to gradle 7.6.x due to weird issues with signing plugin.

jvalkeal commented 3 months ago

Essentially with gradle 8.6 we get:

Note, you need env variables ORG_GRADLE_PROJECT_signingKey and ORG_GRADLE_PROJECT_signingPassword to point to valid credentials for signing attempt to happen.

> Task :spring-statemachine-core:signMavenJavaPublication FAILED

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':spring-statemachine-core:signMavenJavaPublication' (type 'Sign').
  - In plugin 'org.gradle.plugins.signing.SigningPlugin$Inject' type 'org.gradle.plugins.signing.Sign' property 'generatorsByKey./home/jvalkealahti/repos/spring/spring-statemachine/main/spring-statemachine-core/build/classes/java/main.toSign' file '/home/jvalkealahti/repos/spring/spring-statemachine/main/spring-statemachine-core/build/classes/java/main' is not a file.

    Reason: Expected an input to be a file but it was a directory.

    Possible solutions:
      1. Use a file as an input.
      2. Declare the input as a directory instead.

When looking older gradle versions 8.2 is a first one to show this issue. 8.1 was still ok. Signing logic in buildSrc was copied from spring-security which is using 8.6 without issues meaning it's something else in a statemachine build causing it.

jvalkeal commented 3 months ago

When trying to debug behaviour I noticed that modifying:

https://github.com/spring-projects/spring-statemachine/blob/451f12ab14fdfd9c7b41cfb44a2d91981f212537/buildSrc/src/main/java/org/springframework/statemachine/gradle/SpringSigningPlugin.java#L63-L67

Just by adding call to getPublishableArtifacts() in a DefaultMavenPublication makes this issue go away. Internally it calls DefaultMavenPublication.populateFromComponent() which does something.

public void execute(PublishAllJavaComponentsPlugin publishingPlugin) {
    PublishingExtension publishing = project.getExtensions().findByType(PublishingExtension.class);
    Publication maven = publishing.getPublications().getByName("mavenJava");
    if (maven instanceof DefaultMavenPublication p) {
        PublicationArtifactSet<MavenArtifact> publishableArtifacts = p.getPublishableArtifacts();
    }
    signing.sign(maven);
}
jvalkeal commented 3 months ago

This test key was created by gpg --output public.pgp --armor --export testing@example.com with password passwordD1

-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=V3bG
-----END PGP PRIVATE KEY BLOCK-----
jvalkeal commented 3 months ago

Turned out to be this gradle stuff copied from boot

https://github.com/spring-projects/spring-boot/blob/62f922369d2714847f8e0f559e282f62d8eac63d/buildSrc/src/main/java/org/springframework/boot/build/MavenPublishingConventions.java#L117-L126