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'
}