Repository navigation
Conversation
Add the JUnit platform launcher to the test runtime. Without it, Gradle 8.5 uses its bundled launcher, which does not match JUnit Platform 1.14. Test discovery then fails with "OutputDirectoryCreator not available", which is why Dependabot PR #162 failed CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jreleaser 1.21.0 pulls bouncycastle 1.82 and jackson 2.20.0 onto the build classpath. Both are in the range of known advisories. 1.26.0 is the latest release and pulls bouncycastle 1.85. PR CI does not run jreleaser tasks; the publish workflows do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gradle 8.5 is in the range of five high-severity Gradle advisories (GHSA-mqwm-5m85-gmcv, GHSA-w78c-w6vf-rw82, GHSA-j5m7-59rp-24f5, GHSA-xwqc-3h47-hg64, GHSA-mvvg-497x-hmj8). 8.14.6 fixes them and is the latest Gradle 8 release. Dependabot PR #160 proposes 9.8.2, but Gradle 9 requires Java 17 to run, and CI runs Gradle on Java 8 and 11. The wrapper jar matches the checksum that Gradle publishes for 8.14.6. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jreleaser 1.26.0 is the latest release. On the build classpath it pulls jackson-databind 2.22.1, httpclient5 5.6.1 (with httpcore5-h2 5.4) and plexus-utils 3.2.1, which are in the range of known advisories. Buildscript constraints raise them to the smallest fixed versions: jackson 2.22.3 (all jackson modules align through jackson-bom), httpclient5 5.6.3 (httpcore5-h2 5.4.3) and plexus-utils 3.6.1. PR CI does not run jreleaser tasks. The publish steps were checked with dry runs on JDK 8 (release) and JDK 17 (snapshot). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
logback-core 1.3.16 is in the range of three low-severity advisories (GHSA-qqpg-mvqg-649v, GHSA-p47f-322f-whfh, GHSA-jhq6-gfmj-v8fx). The fixes are only in logback 1.5 and later, which require Java 11, and CI tests on Java 8. That is why Dependabot PR #161 failed CI. logback is only the test logging backend; no code refers to it. slf4j-simple keeps the DEBUG level, the time format and the stdout output of the logback configs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Gradle 9 requires Java 17 to run, and CI runs Gradle on Java 8 and 11. This declines Dependabot PR #160 and stops new PRs for Gradle 9. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are recorded for the build and test dependency updates.
No open issues 🎉
What changed in this PR
This PR addresses build and test dependency vulnerabilities while preserving Java 8 compatibility. Runtime SDK dependencies remain unchanged; Tika and WireMock dependency advisories are explicitly deferred.
Changes:
- Upgrade JReleaser and add minimum-version constraints for vulnerable build dependencies.
- Upgrade the Gradle wrapper to 8.14.6 and ignore major wrapper updates in Dependabot.
- Upgrade JUnit with an aligned platform launcher and replace test-only Logback with SLF4J Simple.
| File | Description |
|---|---|
src/test/resources/simplelogger.properties |
Configure DEBUG test logging with timestamps and stdout output. |
src/test/resources/logback.xml |
Remove obsolete Logback configuration. |
src/test/resources/logback-test.xml |
Remove obsolete test-specific Logback configuration. |
gradlew.bat |
Refresh the Windows wrapper launcher. |
gradlew |
Refresh the Unix wrapper launcher. |
gradle/wrapper/gradle-wrapper.properties |
Select Gradle 8.14.6 and add download settings. |
build.gradle |
Update build and test dependencies and add version constraints. |
.github/dependabot.yml |
Ignore major Gradle wrapper updates to preserve older-JDK support. |
Review effort: Balanced
|
🤖 Response from codex: Pre-push review of the branch: no blocking issues found. Two non-blocking notes:
Fact-check of this description, three rounds:
Claims that rest on executed results (tests, OSV scans, dry runs) stay unverified by codex, because its sandbox runs nothing. |
| buildscript { | ||
| dependencies { | ||
| // jreleaser 1.26.0 pulls older versions with known advisories. Remove once it pulls these. | ||
| constraints { |
There was a problem hiding this comment.
🤖 Context from Claude:
Gradle requires buildscript {} before plugins {}. Constraints here also apply to plugins that the plugins {} block resolves, such as jreleaser.
To check them, run ./gradlew buildEnvironment. Each constrained module shows an arrow, for example org.codehaus.plexus:plexus-utils:3.2.1 -> 3.6.1. When a jreleaser upgrade pulls a version at or above a constraint, that arrow goes away. Then delete that line.
PR CI does not run jreleaser tasks. After a change to this block, run the publish steps with --dryrun, or watch the next publish workflow.
🤖 Generated from Claude
Jira: FFESUPPORT-1065
Summary
Dependabot shows 0 alerts for this repo, because the GitHub dependency graph does not resolve Gradle dependencies. An OSV scan of every resolved Gradle configuration, on JDK 21 and JDK 8, finds advisories on the build classpath and on the test classpath. The Gradle wrapper (8.5) also has five Gradle advisories. The runtime classpath has none; for example, the SDK already declares jackson-databind 2.22.3 directly.
This PR closes every advisory that the scan found, except two groups (see Deferred): tika-core on the build classpath, and the dependencies of WireMock on the test classpath. It also applies or replaces the four open Dependabot PRs, each of which failed CI or needed more changes. There is no version bump, because 6.0.0 is not released yet.
Advisories
There is no lockfile. "Where" names the declaration or the dependency path that brings in each package.
httpclient5 and httpcore5-h2 rows appear only after the jreleaser upgrade: jreleaser 1.21.0 does not pull them.
What changed
buildscript {}block aboveplugins {}adds constraints for the smallest fixed versions: jackson-databind 2.22.3, httpclient5 5.6.3 (which brings httpcore5-h2 5.4.3) and plexus-utils 3.6.1. All jackson modules align at 2.22.3 through jackson-bom.gradlew,gradlew.batand the wrapper jar, and addednetworkTimeout=10000andvalidateDistributionUrl=truetogradle-wrapper.properties. The wrapper jar matches the checksum that Gradle publishes. A new Dependabot ignore rule stops PRs for new Gradle major versions. Remove it when CI no longer runs Gradle on Java 8 and 11.testRuntimeOnly 'org.junit.platform:junit-platform-launcher'. build(deps): bump org.junit:junit-bom from 5.11.4 to 5.14.4 #162 failed because Gradle used its bundled launcher, which does not match JUnit Platform 1.14:OutputDirectoryCreator not available; probably due to unaligned versions of the junit-platform-engine and junit-platform-launcher jars.src/test/resources/simplelogger.propertiesreplaces the two logback configs,logback.xmlandlogback-test.xml, which this PR deletes.maintotest.HH:mm:ss.SSStime format and the output to stdout.How the tests and CI protect this change
lint-test-sdkruns./gradlew check(tests and spotless) on JDK 8, 11, 17, and 21.sdk-test-data:main: 44 tests pass.checkand JDK 8 (eclipse-temurin:8-jdkin docker)clean checkpass. 44 tests, and spotless passes.main(342d33c, jreleaser 1.21.0, Gradle 8.5) and on this branch's head (e6aba6d, jreleaser 1.26.0 with constraints, Gradle 8.14.6). The comparison is of file names and signatures, not file contents:publish-sdk.yml), with the version set to6.0.0locally:jreleaserConfig,publish -PreleaseandjreleaserDeploy --dryrunpass on both. The staged files (35) have the same names, andgpg --verifyaccepts all 5 signatures.publish-snapshot.yml): the steps pass on both. The staged files (40) have the same names, and all 5 signatures verify.Not validated before merge
--dryrunskips the network calls. On merge,publish-snapshot.ymldeploys a snapshot with jreleaser 1.26.0 and the constraints for the first time. If that run fails, revert the jreleaser and constraints commits.Deferred
EppoClientTestafter Prepare Java server SDK 6.0.0 with stable common v4 #158 merges, because Prepare Java server SDK 6.0.0 with stable common v4 #158 adds WireMock tests. That removes all 33 rows.publish-sdk.ymlruns on JDK 8. In jreleaser 1.26.0,ClientUtilscallsTika.detect(Path)to find a file's media type. Both deployers in this build read frombuild/staging-deploy, which this build writes. The publish jobs hold signing and Maven Central credentials, so this stays open until jreleaser moves to a fixed Tika.eppo-server-sdk5.3.4 declares jackson-databind 2.20.1 and sdk-common-jvm 3.13.2, which have runtime advisories. This PR does not change them.mainalready declares jackson-databind 2.22.3, so 6.0.0 ships a fixed runtime version.Dependabot PRs
Merge order
#158 (the 6.0.0 release) edits the
build.gradleline next to the logback and junit lines. A test merge of the two branches (git merge-tree) conflicts inbuild.gradle. Merge this PR first and rebase #158, or the reverse. The runtime classpath does not depend on the order.🤖 Generated with Claude Code