-
Notifications
You must be signed in to change notification settings - Fork 11
Upgrade to Gradle 9.3.1 with JDK 21 build requirement #365
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: main
Are you sure you want to change the base?
Conversation
- Gradle 8.12 → 9.3.1, Spotless 7.0.2, JMH 0.7.3 - CI and Docker builds now use JDK 21 (Gradle 9 requires JDK 17+) - Fix Kotlin 2 API changes (capitalize, createTempFile, exec) - Fix Spotless 7.x API changes (editorConfigOverride, leadingTabsToSpaces) - Two-JDK pattern: build JDK 21, test JDK configurable 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
CI Test ResultsRun: #21947336544 | Commit:
Status Overview
Legend: ✅ passed | ❌ failed | ⚪ skipped | 🚫 cancelled Failed Testsmusl-amd64/debug / 8-librcaJob: View logs No detailed failure information available. Check the job logs. musl-amd64/debug / 11-librcaJob: View logs No detailed failure information available. Check the job logs. musl-aarch64/debug / 11-librcaJob: View logs No detailed failure information available. Check the job logs. musl-aarch64/debug / 8-librcaJob: View logs No detailed failure information available. Check the job logs. glibc-aarch64/debug / 21Job: View logs No detailed failure information available. Check the job logs. Summary: Total: 40 | Passed: 35 | Failed: 5 Updated: 2026-02-12 13:14:23 UTC |
Scan-Build Report
Bug Summary
Reports
|
||||||||||||||||||||||||||||||||||||
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Set explicit executable for runUnwindingValidator and unwindingReport tasks to avoid Gradle 9 javaLauncher toolchain probing failures. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
f30523e to
a6f77f9
Compare
Gradle 9 detects that compileJava9Java uses mainSourceSet.output which includes copyExternalLibs destination. Add explicit dependency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
90d13d7 to
0970a33
Compare
- Fix PATH env variable escaping in Dockerfile heredocs - Add coreutils to Alpine base image for chmod 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add 'assembled' publication with all build artifacts - Include POM metadata (license, SCM, developers) - Configure signing with in-memory PGP keys - Add publication assertions for CI requirements 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add javaLauncher workaround for Test tasks (musl compatibility) - Fix configurations to be resolvable-only (Gradle 9 requirement) - Upgrade plugins: ben-manes.versions 0.51.0, download 5.6.0 - Use lazy configuration for Javadoc tasks - Fix eager task resolution in publishing assertions 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Use lazy task resolution for javadocJar (map instead of get) - Use task matching for assembleReleaseJar (registered in afterEvaluate) - Extract javaLauncher workaround to documented helper methods 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
6627c11 to
5fa4655
Compare
Replace Test/JavaExec tasks with Exec tasks to bypass Gradle's toolchain system. Adds JUnit Platform Console Launcher dependency. - Same task names on all platforms (testdebug, testrelease) - JAVA_TEST_HOME support everywhere for multi-JDK testing - No platform-specific code paths - Verified working in musl containers Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Preserve build-script args in doFirst blocks (LIFO order) - Fix test filter to only use --select-method for '#' separator - Update javadoc to reference Exec tasks instead of Test/JavaExec - Simplify build.gradle.kts to use doFirst (plugin preserves args) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Move test properties into plugin (avoid doFirst ordering issues) - Fix test filter: use --select-class instead of --scan-classpath when filtering - Simplify build.gradle.kts (plugin now handles all properties) - Tests now execute successfully with -Ptests filter Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Two critical fixes for Exec-based test tasks: 1. Defer executable resolution to execution time - Move testJavaExecutable() call from configuration to doFirst - CI sets JAVA_TEST_HOME at runtime, not visible at config time - Fixes JDK version mismatch (tests ran with build JDK not test JDK) 2. Explicitly pass through CI environment variables - Exec tasks don't inherit environment like Test tasks - Add LIBC, KEEP_JFRS, TEST_COMMIT, TEST_CONFIGURATION, SANITIZER - Fixes assumption failures in MuslDetectionTest and others Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
What does this PR do?:
Upgrades the build system from Gradle 8.12 to Gradle 9.3.1 and updates the build JDK requirement from JDK 11 to JDK 21. Also adds Dependabot configuration for automated dependency updates.
Key changes:
capitalize,createTempFile,exec)editorConfigOverride,leadingTabsToSpaces)JAVA_TEST_HOMEis read correctly-Ptestsproperty instead of--testsflag (Exec tasks don't support--tests)Motivation:
Gradle 9 brings performance improvements, better dependency management, and is required for long-term support. JDK 21 is the current LTS and provides the best tooling support while still allowing
--release 8targeting.Additional Notes:
--release 8; suppressed with-Xlint:-optionsHow to test the change?:
For Datadog employees:
credentials of any kind, I've requested a review from
@DataDog/security-design-and-guidance.Unsure? Have a question? Request a review!
🤖 Generated with Claude Code