Update Gradle to 9.6.0#11682
Conversation
…t path quoting Gradle 9.6 wraps project paths in single quotes in the dependencies report output: `project ':dd-java-agent:agent-bootstrap'` instead of the previous `project :dd-java-agent:agent-bootstrap`. Drop the `project` prefix from the assertion so the check matches both formats.
This comment has been minimized.
This comment has been minimized.
787f7c7 to
f29c9b7
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 787f7c75f9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
🟢 Java Benchmark SLOs — All performance SLOs passed
PR vs. master results
Commit: Load and DaCapo benchmarks can be triggered manually in the GitLab pipeline. Results will appear in the Benchmarking Platform UI after completion. |
AlexeyKuznetsov-DD
left a comment
There was a problem hiding this comment.
LGTM.
Left couple of comments.
… under Gradle 9.6 The `sofa-rpc-all:5.14.2` brings `netty-all:4.1.44.Final`, which is a fat jar, while `grpc-netty:1.53.0` brings individual `netty-*:4.1.79.Final` modules. Gradle 9.6.0 introduced a regression in the classpath ordering, as they are working on revamping the dependency traversal. The result is that the `4.1.44` fat jar classes appears earlier and its classes are loaded from it ; This produces a `NoSuchMethodError` at runtime in netty's `AbstractReferenceCountedByteBuf`. The workaround is to force `netty-all` to `4.1.79` so the fat jar and the individual modules are aligned on the same version. This should be fixed in 9.7.0 and consequently removed from the `resolutionStrategy`. See gradle/gradle#38057
….6.0) Gradle 9.6.0 deprecates a few old API, unfortunately Kotlin property delegates are part of the bag. gradle/gradle#37555 gradle/gradle#37556 https://docs.gradle.org/current/userguide/upgrading_version_9.html#kotlin_dsl_delegated_properties
8d1b63c to
c55ce4b
Compare
|
/merge |
|
View all feedbacks in Devflow UI.
This pull request is not mergeable according to GitHub. Common reasons include pending required checks, missing approvals, or merge conflicts — but it could also be blocked by other repository rules or settings.
The expected merge time in
|
What Does This Do
This pull request updates the project to use Gradle 9.6.0 and implements fixes to address compatibility issues introduced by this version. Specifically, it includes the following changes:
sofa-rpc-all's fat jar by forcing thenetty-alldependency to version 4.1.79.I identified the regression in
lockAllConfigurations()changes runtime classpath artifact ordering in 9.6.0-RC1 gradle/gradle#38057, which is related to an ongoing work on dependency traversal; this should be fixed via Add feature preview for enhanced graph orderings gradle/gradle#38077 in Gradle 9.7.0.Motivation
Gradle 9.6.0 introduces new features and deprecations that necessitate updating the project to maintain compatibility. This update ensures a smooth transition to the newer Gradle version and resolves specific issues arising from dependency conflicts and regression changes.
One thing we are looking for in particular in this release is the probable performance improvement in the CI environment thanks to melioration related to fingeprinting (gradle/gradle#37406) and its btree cache storage gradle/gradle#37386 (the PR now grows the file by 64KiB chunks, instead of calling
file.setLength, which results inftruncatesyscall , this syscall is expensive on cloud storage as it triggers metadata journal commits). There are other details in there, but that appears to be the main explanation. (According to the gradle PR, the cost offtruncatedepends on the underlying storage, so it may also depend on what we run the CI on).Additional Notes
Contributor Checklist
type:and (comp:orinst:) labels in addition to any other useful labelsclose,fix, or any linking keywords when referencing an issueUse
solvesinstead, and assign the PR milestone to the issue/merge. You can also:/merge --commit-message "..."/merge -c/merge -f --reason "reason"; please use this judiciously, as some checks do not run at the PR-level (note: the PR still needs to be mergeable, this will only skip the pre-merge build)Jira ticket: [PROJ-IDENT]