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]