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

Reply via email to