docs: document the supported Java ceiling and where it comes from - #187
Merged
Conversation
The README said only 'Supported runtimes in CI today are Java 8, 17, and 21', which is a CI matrix, not a support statement — it says nothing about the highest Java version dynamic dedup can actually handle, and nothing about this repo being part of that limit. That gap is not academic. Dedup needs BOTH jars to read the app's bytecode: the jacocoagent in k8s-proxy's init image to analyze coverage, and the ASM shaded into keploy-sdk.jar (via org.jacoco:org.jacoco.core) to instrument it. The lower of the two wins, and while jacoco.core sat on 0.8.12 the lower one was THIS repo — it capped dedup at Java 22 while the agent could already read more, with nothing recording that the SDK was the binding constraint. Above the ceiling nothing fails loudly: the app is instrumented, the replay passes, and coverage is simply never produced, so no duplicates are found and it looks like the app has none. Documents the two-jar ceiling, why exceeding it is silent, and the exact two-repo procedure for raising it — including taking JaCoCo's OFFICIALLY supported version rather than the experimental one, since the shipped ASM declares one version beyond what it accepts by default. Signed-off-by: Shubham Jain <shubham@keploy.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #186.
Why
The README's only statement about Java support was "Supported runtimes in CI today are Java 8, 17, and 21" — which is a CI matrix, not a support statement. It said nothing about the highest Java version dynamic dedup can actually handle, and nothing about this repo being part of that limit.
That gap had a cost. Dedup needs both jars to read the app's bytecode:
jacocoagent.jar(k8s-proxy init image)keploy-sdk.jar(this repo)jacoco.coreThe lower one wins — and while
jacoco.coresat on 0.8.12, the lower one was this repo. It capped dedup at Java 22 while the agent could already read more, with nothing anywhere recording that the SDK was the binding constraint.What exceeding it looks like
Nothing crashes, which is why it's worth writing down. The app is instrumented, the replay runs, every test passes — coverage is just never produced, so no duplicates are found. Indistinguishable from "this app has no duplicates".
What this adds
Opcodes.V23note got read one version too high.Docs only — no code change.