-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Evaluate upgrading Groovy to 5.0.0 under JDK 11 runtime constraint #13679
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR upgrades the Groovy dependency from version 4.0.15 to 5.0.0, with a focus on validating runtime compatibility under JDK 11 constraints. The author has verified that the OAP distribution builds successfully with JDK 21 and runs on JDK 11 without compatibility issues.
Changes:
- Upgrade Groovy version from 4.0.15 to 5.0.0 in the BOM
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
e2e and UT seem all good. Could you fix dependency and change log? |
oap-server-bom/pom.xml
Outdated
| <javaassist.version>3.25.0-GA</javaassist.version> | ||
| <vavr.version>0.10.3</vavr.version> | ||
| <groovy.version>4.0.15</groovy.version> | ||
| <groovy.version>5.0.0</groovy.version> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| <groovy.version>5.0.0</groovy.version> | |
| <groovy.version>5.0.3</groovy.version> |
We should consider latest patch version. Ref to https://mvnrepository.com/artifact/org.apache.groovy/groovy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
oap-server-bom/pom.xml
Outdated
| <javaassist.version>3.25.0-GA</javaassist.version> | ||
| <vavr.version>0.10.3</vavr.version> | ||
| <groovy.version>4.0.15</groovy.version> | ||
| <groovy.version>5.0.0</groovy.version> |
Copilot
AI
Jan 21, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Groovy 5.0.0 represents a major version upgrade from 4.0.15. While the PR description indicates thorough local testing, it would be beneficial to verify that this is indeed the intended GA (General Availability) version. Groovy 5.x introduces some breaking changes from 4.x, and while the tests reportedly pass, consider documenting any behavioral differences or migration notes for future reference, especially since this affects DSL parsing in critical analyzer modules.
| <groovy.version>5.0.0</groovy.version> | |
| <groovy.version>4.0.15</groovy.version> |
|
I’ve addressed the requested follow-ups:
|
docs/en/changes/changes.md
Outdated
| * `BanyanDB Client`: Property query support `Order By`. | ||
| * MQE: trim the label values condition for the labeled metrics query to enhance the readability. | ||
| * PromQL service: fix time parse issue when using RFC3339 time format for querying. | ||
| * Upgrade Groovy to 5.0.3 in OAP backend. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's put this into project level changelog, as this is core lib level update.
|
All CIs passed without error. @wankai123 Is this good to you? Any more tests or validation you want to do. |
Evaluation Purpose
This PR is an extension to another PR ( #13671 ) and evaluates upgrading the Groovy engine from 4.0.x to 5.0.0 (earliest GA) with a focus on validating SkyWalking’s JDK 11 runtime compatibility guarantee.
Groovy is used as a runtime dependency in several OAP backend modules, so this change is evaluated strictly from a compatibility and policy perspective.
Verification Results
Local evaluation was performed using JDK 21 for build and JDK 11 for runtime, targeting the primary Groovy consumers (
log-analyzerandmeter-analyzer).Build Status: SUCCESS (built with JDK 21)
Runtime Compatibility:
Verified that the OAP distribution starts successfully on JDK 11 with Groovy 5.0.0.
-Pdist) on JDK 21, then launched OAP viaoapService.batusing JDK 11.UnsupportedClassVersionErroror JVM compatibility failures.Tests Passed:
oap-server/analyzer/log-analyzer(LAL script parsing)oap-server/analyzer/meter-analyzer(MAL script execution)Key Findings
Scope Notes
This PR is intended solely as a compatibility evaluation and does not include test refactors, additional Groovy 5.x upgrades, or behavioral changes.