jamesfredley commented on PR #15319:
URL: https://github.com/apache/grails-core/pull/15319#issuecomment-3764426934

   My outstanding concern is documentation.  Here is a stab at all of the 
changes.
   
   In general this fixes the two version for rxjava which were incorrect and 
applies logically consistent changes to the grails-bom (IE. what we would 
want/expect).
   
   This will only break an application using one of the version properties, 
which has been removed, in Spring Dependency Management Plugin.
   
   ### 1. Property Name Standardization and Removal of Duplicates
   - In the 7.0.5 POM, there are **numerous duplicated properties** for 
third-party dependencies, with one variant using hyphens (e.g., 
`byte-buddy.version`) and an identical one using dots (e.g., 
`byte.buddy.version`), both set to the same value. This applies to properties 
like:
     - `asset-pipeline-gradle.version` / `asset.pipeline.gradle.version`
     - `byte-buddy.version` / `byte.buddy.version`
     - `commons-text.version` / `commons.text.version`
     - `directory-watcher.version` / `directory.watcher.version`
     - `grails-publish-plugin.version` / `grails.publish.version` (though this 
is slightly inconsistent in naming)
     - `javaparser-core.version` / `javaparser.core.version`
     - `bootstrap-icons.version` / `bootstrap.icons.version` (literal duplicate 
entries)
     - `commons-codec.version` / `commons.codec.version`
     - `geb-spock.version` / `geb.spock.version`
     - `asset-pipeline-bom.version` / `asset.pipeline.bom.version`
     - `spock.version` / `spock.bom.version` (values match but names differ 
slightly)
     - `jackson.version` / `jackson.bom.version`
     - `groovy.version` / `groovy.bom.version`
     - `selenium.version` / `selenium.bom.version`
   - In 7.0.6-SNAPSHOT:
     - All dotted variants have been **removed**.
     - Only the hyphenated forms are retained (e.g., `byte-buddy.version`, 
`asset-pipeline-gradle.version`).
     - This eliminates redundancy and enforces consistency.
   
   - Additionally, Grails-specific properties in 7.0.5 use dots in their names 
(e.g., `grails.async.version`, `grails.data.hibernate5.version`).
   - In 7.0.6-SNAPSHOT, these have been refactored to use hyphens instead 
(e.g., `grails-async.version`, `grails-data-hibernate5.version`). This aligns 
them with the third-party property naming convention.
   
   ### 2. Renaming and Prefixing of Profile-Related Properties
   - In 7.0.5, profile-related versions use short, unprefixed names:
     - `base.version`
     - `plugin.version`
     - `profile.version`
     - `rest.api.version`
     - `rest.api.plugin.version`
     - `web.version`
     - `web.plugin.version`
   - In 7.0.6-SNAPSHOT, these have been renamed with a `grails-profile-` prefix 
and hyphens for consistency:
     - `grails-profile-base.version`
     - `grails-profile-plugin.version`
     - `grails-profile-profile.version`
     - `grails-profile-rest-api.version`
     - `grails-profile-rest-api-plugin.version`
     - `grails-profile-web.version`
     - `grails-profile-web-plugin.version`
   
   ### 3. Removal of Redundant or Unused Properties
   - Several groups of related properties in 7.0.5 have been consolidated or 
removed in 7.0.6-SNAPSHOT:
     - **Liquibase**: 7.0.5 has multiple (`liquibase-hibernate5.version`, 
`liquibase.version`, `liquibase.cdi.version`, `liquibase.core.version`, 
`liquibase5.hibernate.version`). 7.0.6-SNAPSHOT retains only 
`liquibase-hibernate5.version`.
     - **MongoDB**: 7.0.5 has multiple (`mongodb.version`, `bson.version`, 
`mongodb.driver.core.version`, `mongodb.driver.sync.version`, 
`bson.record.codec.version`). 7.0.6-SNAPSHOT retains only `mongodb.version`.
     - **Sitemesh**: 7.0.5 has `sitemesh.version`, `starter-sitemesh.version`, 
`spring.boot.starter.sitemesh.version`. 7.0.6-SNAPSHOT removes 
`spring.boot.starter.sitemesh.version`.
     - **Ant**: 7.0.5 has separate `ant.version` and `ant.junit.version` (both 
identical). 7.0.6-SNAPSHOT removes `ant.junit.version`.
     - **Spring Boot sub-components**: 7.0.5 has separate 
`spring.boot.cli.version` and `spring.boot.gradle.plugin.version` (matching 
`spring-boot.version`). 7.0.6-SNAPSHOT removes them, implying direct use of 
`spring-boot.version`.
     - **Asciidoctor Gradle**: 7.0.5 has `asciidoctor.gradle.jvm.version` 
(4.0.5). 7.0.6-SNAPSHOT renames it to `asciidoctor-gradle-jvm.version` (still 
4.0.5) and keeps `asciidoctorj.version` (3.0.0) separate.
     - **Spring Boot dependencies**: 7.0.5 has 
`spring.boot.dependencies.version`. 7.0.6-SNAPSHOT removes it (now directly 
uses `spring-boot.version`).
     - **Liquibase Hibernate**: 7.0.5 has `liquibase.hibernate5.version` 
(duplicate of `liquibase-hibernate5.version`). 7.0.6-SNAPSHOT removes it.
   
   ### 4. Specific Property Value Changes
   - `rxjava.version` (for RxJava 1.x, groupId `io.reactivex`):
     - 7.0.5: `3.1.11` (incorrect, as this is an RxJava 3.x version).
     - 7.0.6-SNAPSHOT: Corrected to `1.3.8` (proper last version for RxJava 
1.x).
   - `rxjava2.version` (for RxJava 2.x, groupId `io.reactivex.rxjava2`):
     - 7.0.5: Effectively `3.1.11` (incorrect; the dependency referenced 
`${rxjava.version}`, which was set to an RxJava 3.x version).
     - 7.0.6-SNAPSHOT: Corrected to `2.2.21` (proper version for RxJava 2.x, 
now using the dedicated `${rxjava2.version}` in the dependency declaration).
   - `rxjava3.version` (for RxJava 3.x, groupId `io.reactivex.rxjava3`):
     - 7.0.5: Effectively `3.1.11` (via `${rxjava.version}` in the dependency 
declaration).
     - 7.0.6-SNAPSHOT: Remains `3.1.11` (now using the dedicated 
`${rxjava3.version}`).
   - No other third-party version bumps (e.g., Spring Boot remains 3.5.9, 
Groovy 4.0.29, Jackson 2.19.1, etc.).
   
   ### 5. Additions and Refinements in `<dependencyManagement>`
   - In 7.0.5, the `<dependencyManagement>` section imports external BOMs 
(e.g., `spring-boot-dependencies`, `asset-pipeline-bom`, `spock-bom`, etc.), 
and uses properties for versions (e.g., `${spring.boot.dependencies.version}`, 
`${asset-pipeline-bom.version}`).
   - In 7.0.6-SNAPSHOT:
     - The `spring-boot-dependencies` import now uses `${spring-boot.version}` 
directly (aligning with the removal of `spring.boot.dependencies.version`).
     - Several internal Grails artifacts are explicitly declared with versions 
referenced via properties (e.g., `${grails-gsp-spring-boot.version}`, 
`${grails-gradle-plugins.version}`), but since those properties are set to 
`7.0.6-SNAPSHOT`, it supports snapshot builds.
     - Direct dependencies for RxJava variants (`io.reactivex:rxjava`, 
`io.reactivex.rxjava2:rxjava`, `io.reactivex.rxjava3:rxjava`) are refined to 
use the correct, dedicated version properties (as noted in section 4), fixing 
the previous misuse of a single `${rxjava.version}` for all three.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to