The GitHub Actions job "CI - Groovy Joint Validation Build" on grails-core.git/fix/spring-dm-example-in-commit-bom has failed. Run started by GitHub user jamesfredley (triggered by jamesfredley).
Head commit for run: 9bc5aefbf174a9798b5182e0fd146443e79b9694 / James Fredley <[email protected]> fix: resolve the Spring DM example against the in-commit BOM The Spring Dependency Management example opts out of the native platform(grails-bom) injection and imports grails-bom as a Maven BOM instead. io.spring.dependency-management resolves that import as an artifact-only @pom in its own detached configuration, which never sees the project substitution in gradle/functional-test-config.gradle, so it could only ever be satisfied from a repository. That had two consequences. The example silently validated against the last BOM published to the Apache snapshot repository rather than the one in the commit under test, so a change to dependencies.gradle went unverified there and the effective BOM changed whenever CI published. And on a version that had never been published - a new release branch, immediately after the version bump - the import produced no managed versions at all rather than failing, so every managed dependency resolved with an empty version and the build died with "Could not find <group>:<artifact>:", before CI could publish the snapshot that would have fixed it. Generate the BOM poms this build produces and serve them from a local repository instead: - Stage grails-base-bom, grails-bom, grails-hibernate5-bom and grails-hibernate7-bom into .gradle/local-boms during root configuration. Spring DM resolves its detached import while the task graph is still being computed, so no task dependency can put the poms in place in time. The location is outside build/ so a combined `gradlew clean <task>` cannot delete them between configuration and resolution. - Serve them through an exclusiveContent repository scoped to this build, so the coordinates resolve locally or fail loudly rather than falling back to the remote and quietly reintroducing the stale-BOM behaviour. - Evaluate grails-base-bom last. It classifies sibling projects by whether they already carry java-platform, so evaluating it first made it adopt the other BOMs as managed dependencies and bake that into the published pom. - Stop BomPropertyOverridesPlugin resolving project platforms as external modules. It requested grails.core.ROOT:grails-hibernate5-bom:unspecified, which cannot resolve, leaving those versions unmanaged. The temporary -PbomSnapshotNotPublished guard is no longer needed and the example is included unconditionally again, including during reproducible release builds. Assisted-by: claude-code:claude-opus-5 Report URL: https://github.com/apache/grails-core/actions/runs/30592544624 With regards, GitHub Actions via GitBox
