-
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
base: master
Are you sure you want to change the base?
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? |
| <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.
| <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> |
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.