This is an automated email from the ASF dual-hosted git repository.

jdaugherty pushed a commit to branch 8.0.x
in repository https://gitbox.apache.org/repos/asf/grails-core.git


The following commit(s) were added to refs/heads/8.0.x by this push:
     new d7b393ca72 Exclude the Spring DM example from reproducible (release) 
builds
d7b393ca72 is described below

commit d7b393ca72c2c5f0aa356dec7d6bd11e1107959f
Author: James Daugherty <[email protected]>
AuthorDate: Fri Jul 10 08:54:40 2026 -0400

    Exclude the Spring DM example from reproducible (release) builds
    
    io.spring.dependency-management resolves mavenBom imports with its own
    detached configurations, which bypass the local-project substitution in
    gradle/functional-test-config.gradle. The import therefore only works when
    org.apache.grails:grails-bom:<projectVersion> is already published. During
    release staging (SOURCE_DATE_EPOCH set) the version is not published yet,
    so every managed version resolved empty and assemble failed. Skip including
    the example project when a reproducible build is under way; it still builds
    on every regular CI run against the published -SNAPSHOT BOM.
---
 settings.gradle | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/settings.gradle b/settings.gradle
index ecb84d8911..5daed3b617 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -554,7 +554,6 @@ include(
         'grails-test-examples-config-report',
         'grails-test-examples-scaffolding',
         'grails-test-examples-scaffolding-fields',
-        'grails-test-examples-spring-dependency-management',
         'grails-test-examples-test-phases',
         'grails-test-examples-views-functional-tests',
         'grails-test-examples-views-functional-tests-plugin',
@@ -597,9 +596,22 @@ 
project(':grails-test-examples-scaffolding-fields').projectDir = file('grails-te
 project(':grails-test-examples-views-functional-tests').projectDir = 
file('grails-test-examples/views-functional-tests')
 project(':grails-test-examples-views-functional-tests-plugin').projectDir = 
file('grails-test-examples/views-functional-tests-plugin')
 project(':grails-test-examples-test-phases').projectDir = 
file('grails-test-examples/test-phases')
-project(':grails-test-examples-spring-dependency-management').projectDir = 
file('grails-test-examples/spring-dependency-management')
 project(':grails-test-examples-jetty').projectDir = 
file('grails-test-examples/jetty')
 
+// The Spring Dependency Management example imports grails-bom as a Maven BOM 
through
+// io.spring.dependency-management, which resolves BOM imports with its own 
detached
+// configurations. Those bypass the local-project substitution rules in
+// gradle/functional-test-config.gradle, so the import only works when
+// org.apache.grails:grails-bom:<projectVersion> is already published to a 
repository.
+// During a release (reproducible build, SOURCE_DATE_EPOCH set) the version 
being staged
+// is not published anywhere yet, so the example cannot resolve its 
dependencies -
+// exclude it from the build graph entirely. It still builds and runs on every 
regular
+// CI build, where the -SNAPSHOT BOM is available from the Apache snapshots 
repository.
+if (!isReproducibleBuild) {
+    include 'grails-test-examples-spring-dependency-management'
+    project(':grails-test-examples-spring-dependency-management').projectDir = 
file('grails-test-examples/spring-dependency-management')
+}
+
 includeBuild('./grails-gradle') {
     name = 'grails-gradle'
 }

Reply via email to