The GitHub Actions job "CI" on 
grails-core.git/build/bom-parent-property-validation has succeeded.
Run started by GitHub user jdaugherty (triggered by jdaugherty).

Head commit for run:
d199bb475b6ca98304f213067574ed7c308d1b90 / James Daugherty 
<[email protected]>
Validate Grails BOM version properties against the Spring Boot BOM

Several Grails BOM overrides of Spring Boot managed versions were declared under
Grails-specific property names: jackson2.version, jackson3.version and
neo4j-driver.version, where Spring Boot controls the same modules with
jackson-2-bom.version, jackson-bom.version and neo4j-java-driver.version. 
Setting
the property Spring Boot documents moved only the modules Grails does not pin,
silently leaving a mixed Jackson or Neo4j driver classpath; the Spring 
Dependency
Management end-to-end build had to copy the Jackson 3 version across by hand.

The new bom-property-validator build plugin registers validateBomProperties on
every BOM. It reads the POM the BOM publishes, walks spring-boot-dependencies 
and
the BOMs it imports with Maven's own model, and fails when:

- a version property the BOM owns is used by no published entry,
- an override of a Spring Boot managed version uses a different property name
  than Spring Boot does (for a module Spring Boot manages through an imported
  BOM, the property that import uses), or
- a pin repeats the version Spring Boot already manages.

Fixing what it found:

- rename jackson2.version -> jackson-2-bom.version, jackson3.version ->
  jackson-bom.version and neo4j-driver.version -> neo4j-java-driver.version
- publish the platform BOMs the derived BOMs re-declare as constraints
  (groovy-bom, spock-bom, asset-pipeline-bom) with their property instead of a
  literal version, so overriding groovy.version moves them too
- remove version keys no published entry used: kotlin.version,
  mockito.version, liquibase-hibernate5.version and the Gradle BOM's
  jquery.version
- document the deliberate exceptions, each with its reason, in
  bomUnusedVersionExemptions, bomPropertyNameExemptions and
  bomRedundantVersionExemptions

The task has its own opt-out, skipBomPropertyValidation, and runs in its own CI
job like validateDependencyVersions. A -P opt-out given without a value now
actually skips: Gradle passes it as an empty string, which the shared check
parsed as false, so a bare -PskipDependencyValidation never took effect.

The upgrade guide and the Grails 8 upgrade skill state that Grails BOMs now
follow the upstream property names, and list the renames.

Fixes #15737

Report URL: https://github.com/apache/grails-core/actions/runs/36571932770

With regards,
GitHub Actions via GitBox

Reply via email to