From ed5d6fc3d6c38b2b1673a8f81071af62f85898b3 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 10 Mar 2026 18:17:53 +0100 Subject: [PATCH 1/4] Create gradle.properties in ProcessingPluginTest Add creation of sketch/gradle.properties in ProcessingPluginTest, writing processing.group derived from System.getProperty("project.group").replace(".java", ""). This ensures the test project has the expected processing.group property within the tests --- java/gradle/src/test/kotlin/ProcessingPluginTest.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/java/gradle/src/test/kotlin/ProcessingPluginTest.kt b/java/gradle/src/test/kotlin/ProcessingPluginTest.kt index c67725e99..19e42557f 100644 --- a/java/gradle/src/test/kotlin/ProcessingPluginTest.kt +++ b/java/gradle/src/test/kotlin/ProcessingPluginTest.kt @@ -24,6 +24,11 @@ class ProcessingPluginTest{ } """.trimIndent()) directory.newFile("sketch/settings.gradle.kts") + directory.newFile("sketch/gradle.properties").writeText( + """ + processing.group=${System.getProperty("project.group").replace(".java", "")} + """.trimIndent() + ) configure(sketchFolder) val buildResult = GradleRunner.create() @@ -218,6 +223,7 @@ class ProcessingPluginTest{ """.trimIndent()) sketchFolder.resolve("gradle.properties").writeText(""") processing.workingDir = ${sketchFolder.parentFile.absolutePath} + processing.group=${System.getProperty("project.group").replace(".java", "")} """.trimIndent()) } val sketchClass = classLoader.loadClass("sketch") @@ -250,9 +256,12 @@ class ProcessingPluginTest{ println("Hello World"); } """.trimIndent()) - sketchFolder.resolve("gradle.properties").writeText(""") + sketchFolder.resolve("gradle.properties").writeText( + """ processing.sketchbook = ${libraryResult.libraryFolder.parentFile.parentFile.absolutePath} - """.trimIndent()) + processing.group=${System.getProperty("project.group").replace(".java", "")} + """.trimIndent() + ) } val sketchClass = classLoader.loadClass("sketch") From 78214c0464bd365dccadb06cab1719507f38663a Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Tue, 10 Mar 2026 18:26:18 +0100 Subject: [PATCH 2/4] Update build.gradle.kts --- java/gradle/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/java/gradle/build.gradle.kts b/java/gradle/build.gradle.kts index 8680c0a85..014b3c2d9 100644 --- a/java/gradle/build.gradle.kts +++ b/java/gradle/build.gradle.kts @@ -48,6 +48,7 @@ publishing{ val testGroup = group.toString() tasks.withType().configureEach { systemProperty("project.group", testGroup) + dependsOn(project(":core").tasks.named("publishToMavenLocal")) } tasks.register("writeVersion") { From f946a168837a1ed6bf5f72a77afe8b58ba009828 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Wed, 25 Mar 2026 20:09:17 +0100 Subject: [PATCH 3/4] Make Maven signing conditional via property Gate calls to signAllPublications() behind a project property so signing only occurs when explicitly enabled. The release workflow now exports ORG_GRADLE_PROJECT_signMavenPackages=true for relevant jobs, and build scripts were updated to check the property before signing (core, java libraries: dxf, io, net, pdf, serial, svg). The preprocessor signing check was also adjusted to look for the signing.signMavenPackages property. This lets CI enable signing when keys are available and avoids signing failures when signing credentials are not configured. --- .github/workflows/release.yml | 3 +++ core/build.gradle.kts | 3 ++- java/libraries/dxf/build.gradle.kts | 3 ++- java/libraries/io/build.gradle.kts | 3 ++- java/libraries/net/build.gradle.kts | 3 ++- java/libraries/pdf/build.gradle.kts | 3 ++- java/libraries/serial/build.gradle.kts | 3 ++- java/libraries/svg/build.gradle.kts | 3 ++- java/preprocessor/build.gradle.kts | 2 +- 9 files changed, 18 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e21fce7a4..3657c1f9b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -69,6 +69,7 @@ jobs: ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }} ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} + ORG_GRADLE_PROJECT_signMavenPackages: true ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} @@ -92,6 +93,7 @@ jobs: GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} + ORG_GRADLE_PROJECT_signMavenPackages: true ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} @@ -104,6 +106,7 @@ jobs: GRADLE_PUBLISH_KEY: ${{ secrets.GRADLE_PUBLISH_KEY }} GRADLE_PUBLISH_SECRET: ${{ secrets.GRADLE_PUBLISH_SECRET }} + ORG_GRADLE_PROJECT_signMavenPackages: true ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.SIGNING_IN_MEMORY_KEY }} ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.SIGNING_IN_MEMORY_KEY_PASSWORD }} diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 16593450e..dda89b0e6 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -38,7 +38,8 @@ dependencies { mavenPublishing{ publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom{ name.set("Processing Core") diff --git a/java/libraries/dxf/build.gradle.kts b/java/libraries/dxf/build.gradle.kts index 0fb74dfd3..318c5b247 100644 --- a/java/libraries/dxf/build.gradle.kts +++ b/java/libraries/dxf/build.gradle.kts @@ -32,7 +32,8 @@ sourceSets { mavenPublishing { publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signing.signMavenPackages")) + signAllPublications() coordinates("$group.core", name, version.toString()) pom { diff --git a/java/libraries/io/build.gradle.kts b/java/libraries/io/build.gradle.kts index f6af4b2b1..f04795e5d 100644 --- a/java/libraries/io/build.gradle.kts +++ b/java/libraries/io/build.gradle.kts @@ -61,7 +61,8 @@ mavenPublishing { coordinates("$group.core", name, version.toString()) publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom { name.set("Processing IO") diff --git a/java/libraries/net/build.gradle.kts b/java/libraries/net/build.gradle.kts index 23289e485..a7690d7cd 100644 --- a/java/libraries/net/build.gradle.kts +++ b/java/libraries/net/build.gradle.kts @@ -53,7 +53,8 @@ mavenPublishing { coordinates("$group.core", name, version.toString()) publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom { name.set("Processing Net") diff --git a/java/libraries/pdf/build.gradle.kts b/java/libraries/pdf/build.gradle.kts index f0e0485a1..5ced5004d 100644 --- a/java/libraries/pdf/build.gradle.kts +++ b/java/libraries/pdf/build.gradle.kts @@ -55,7 +55,8 @@ mavenPublishing{ coordinates("$group.core", name, version.toString()) publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom{ name.set("Processing PDF") diff --git a/java/libraries/serial/build.gradle.kts b/java/libraries/serial/build.gradle.kts index 652b1b398..45d00e004 100644 --- a/java/libraries/serial/build.gradle.kts +++ b/java/libraries/serial/build.gradle.kts @@ -55,7 +55,8 @@ mavenPublishing { coordinates("$group.core", name, version.toString()) publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom { name.set("Processing Serial") diff --git a/java/libraries/svg/build.gradle.kts b/java/libraries/svg/build.gradle.kts index 6189265ba..63a5b3104 100644 --- a/java/libraries/svg/build.gradle.kts +++ b/java/libraries/svg/build.gradle.kts @@ -55,7 +55,8 @@ mavenPublishing { coordinates("$group.core", name, version.toString()) publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) - signAllPublications() + if (project.hasProperty("signMavenPackages")) + signAllPublications() pom { name.set("Processing SVG") diff --git a/java/preprocessor/build.gradle.kts b/java/preprocessor/build.gradle.kts index 6eb71a124..5527a13a8 100644 --- a/java/preprocessor/build.gradle.kts +++ b/java/preprocessor/build.gradle.kts @@ -50,7 +50,7 @@ mavenPublishing{ publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL, automaticRelease = true) // Only sign if signing is set up - if(project.hasProperty("signing.keyId") || project.hasProperty("signingInMemoryKey")) + if (project.hasProperty("signing.signMavenPackages")) signAllPublications() pom{ From ca28d86e00614261c9700aeb86867b16af31acd2 Mon Sep 17 00:00:00 2001 From: Stef Tervelde Date: Wed, 25 Mar 2026 20:20:19 +0100 Subject: [PATCH 4/4] Update ProcessingPluginTest.kt --- java/gradle/src/test/kotlin/ProcessingPluginTest.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/java/gradle/src/test/kotlin/ProcessingPluginTest.kt b/java/gradle/src/test/kotlin/ProcessingPluginTest.kt index 19e42557f..bd4d1e238 100644 --- a/java/gradle/src/test/kotlin/ProcessingPluginTest.kt +++ b/java/gradle/src/test/kotlin/ProcessingPluginTest.kt @@ -23,7 +23,16 @@ class ProcessingPluginTest{ id("${System.getProperty("project.group")}.java") } """.trimIndent()) - directory.newFile("sketch/settings.gradle.kts") + directory.newFile("sketch/settings.gradle.kts").writeText( + """ + pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + } + } + """.trimIndent() + ) directory.newFile("sketch/gradle.properties").writeText( """ processing.group=${System.getProperty("project.group").replace(".java", "")}