You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by ja...@apache.org on 2026/04/25 16:11:14 UTC
(grails-core) 07/07: Align selenium with Spring Boot 4.0.5 BOM and drop OpenTelemetry override
This is an automated email from the ASF dual-hosted git repository.
jamesfredley pushed a commit to branch upgrade/gradle-9.3.1
in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit ccafe2bd86090cd5862a000f096f7b294a10a5f0
Author: James Fredley <ja...@users.noreply.github.com>
AuthorDate: Sat Apr 25 12:06:30 2026 -0400
Align selenium with Spring Boot 4.0.5 BOM and drop OpenTelemetry override
Roll selenium back from 4.41.0 to 4.37.0 - the same version managed by
Spring Boot 4.0.5's spring-boot-dependencies BOM - and remove the
explicit OpenTelemetry 1.59.0 pin plus the 24-module constraint list
that the 4.41 bump previously required.
Background (jdaugherty review thread on dependencies.gradle line 95):
* selenium had been pinned at 4.38 in main due to a geb compatibility
concern. The PR #15365 bump to 4.41 forced OpenTelemetry to 1.59+
because Selenium 4.41+ depends on opentelemetry-* modules newer than
the 1.55.x that Spring Boot 4.0.5 manages, which the dependency-version
validator flagged.
* Spring Boot 4.0.5 BOM declares selenium 4.37 (verified via
spring-boot-dependencies 4.0.5 dependencyManagement). Adopting the
same version makes the OpenTelemetry override unnecessary because
Selenium 4.37 still works with the 1.55.x line that Spring Boot
manages.
Verified:
* gradle :grails-test-examples-scaffolding:validateDependencyVersions
succeeds (resolved versions match BOM-declared versions across
every project in the build).
* gradle validateDependencyVersions (whole-project) succeeds for all
157 reporting tasks.
* gradle :grails-test-examples-geb:compileTestGroovy
:grails-test-examples-geb-context-path:compileTestGroovy
:grails-test-examples-geb-gebconfig:compileTestGroovy succeeds.
* The geb test apps now resolve org.seleniumhq.selenium:selenium-bom:4.37.0
with no transitive opentelemetry conflict.
Net diff: -40 lines from dependencies.gradle. The selenium-version
constant moves to 4.37.0; the opentelemetry.version constant and the 24
opentelemetry-* module entries that propped up the 4.41 path go away.
Reviewer note: This is option (a) from the four selenium options
explored in the review thread. The 4.41 path is preserved on main if a
later bump is needed, but tracking Spring Boot's choice keeps the
override surface zero, which is what the validator wants.
Assisted-by: claude-code:claude-opus-4-7
---
dependencies.gradle | 41 +----------------------------------------
1 file changed, 1 insertion(+), 40 deletions(-)
diff --git a/dependencies.gradle b/dependencies.gradle
index 78b15f3ff1..840018b7f6 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -83,16 +83,10 @@ ext {
'jquery.version' : '3.7.1',
'liquibase-hibernate5.version': '4.27.0',
'mongodb.version' : '5.6.4',
- // Selenium 4.41+ requires OpenTelemetry 1.59+, which is newer than the
- // 1.55.x that Spring Boot 4.0.5 manages. Pin the version on the individual
- // OpenTelemetry modules (see the constraints block in grails-bom/build.gradle)
- // so the explicit constraint overrides whatever Spring Boot's imported BOM
- // declares, regardless of platform import ordering.
- 'opentelemetry.version' : '1.59.0',
'rxjava.version' : '1.3.8',
'rxjava2.version' : '2.2.21',
'rxjava3.version' : '3.1.12',
- 'selenium.version' : '4.41.0',
+ 'selenium.version' : '4.37.0',
'kotlin.version' : '2.2.21',
'mockito.version' : '5.23.0',
'spock.version' : '2.3-groovy-4.0',
@@ -172,39 +166,6 @@ ext {
'mongodb-driver-core' : "org.mongodb:mongodb-driver-core:${bomDependencyVersions['mongodb.version']}",
'mongodb-driver-sync' : "org.mongodb:mongodb-driver-sync:${bomDependencyVersions['mongodb.version']}",
'mongodb-record-codec' : "org.mongodb:bson-record-codec:${bomDependencyVersions['mongodb.version']}",
- // start - individual opentelemetry modules pinned explicitly. Selenium 4.41+ requires
- // OpenTelemetry 1.59+ while Spring Boot 4.0.5's BOM declares 1.55.x. Importing the
- // opentelemetry-bom as a platform would only win over Spring Boot's BOM through
- // import order, which neither Gradle nor Maven guarantees for transitive resolution.
- // Explicit module constraints override any imported BOM's managed version, so this
- // works regardless of platform ordering and keeps the dependency validator's
- // "resolved vs BOM-declared" check consistent.
- // The module list mirrors io.opentelemetry:opentelemetry-bom:1.59.0 dependencyManagement.
- 'opentelemetry-api' : "io.opentelemetry:opentelemetry-api:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-common' : "io.opentelemetry:opentelemetry-common:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-context' : "io.opentelemetry:opentelemetry-context:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-common' : "io.opentelemetry:opentelemetry-exporter-common:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-logging' : "io.opentelemetry:opentelemetry-exporter-logging:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-logging-otlp' : "io.opentelemetry:opentelemetry-exporter-logging-otlp:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-otlp' : "io.opentelemetry:opentelemetry-exporter-otlp:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-otlp-common' : "io.opentelemetry:opentelemetry-exporter-otlp-common:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-sender-grpc-managed-channel' : "io.opentelemetry:opentelemetry-exporter-sender-grpc-managed-channel:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-sender-jdk' : "io.opentelemetry:opentelemetry-exporter-sender-jdk:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-sender-okhttp' : "io.opentelemetry:opentelemetry-exporter-sender-okhttp:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-exporter-zipkin' : "io.opentelemetry:opentelemetry-exporter-zipkin:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-extension-kotlin' : "io.opentelemetry:opentelemetry-extension-kotlin:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-extension-trace-propagators' : "io.opentelemetry:opentelemetry-extension-trace-propagators:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-opentracing-shim' : "io.opentelemetry:opentelemetry-opentracing-shim:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk' : "io.opentelemetry:opentelemetry-sdk:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-common' : "io.opentelemetry:opentelemetry-sdk-common:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-extension-autoconfigure' : "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-extension-autoconfigure-spi' : "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-extension-jaeger-remote-sampler' : "io.opentelemetry:opentelemetry-sdk-extension-jaeger-remote-sampler:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-logs' : "io.opentelemetry:opentelemetry-sdk-logs:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-metrics' : "io.opentelemetry:opentelemetry-sdk-metrics:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-testing' : "io.opentelemetry:opentelemetry-sdk-testing:${bomDependencyVersions['opentelemetry.version']}",
- 'opentelemetry-sdk-trace' : "io.opentelemetry:opentelemetry-sdk-trace:${bomDependencyVersions['opentelemetry.version']}",
- // end - opentelemetry modules
'rxjava' : "io.reactivex:rxjava:${bomDependencyVersions['rxjava.version']}",
'rxjava2' : "io.reactivex.rxjava2:rxjava:${bomDependencyVersions['rxjava2.version']}",
'rxjava3' : "io.reactivex.rxjava3:rxjava:${bomDependencyVersions['rxjava3.version']}",