Skip to content

chore(dedup): bump shaded jacoco.core to 0.8.15 to raise the Java ceiling - #186

Merged
slayerjain merged 1 commit into
mainfrom
chore/jacoco-0.8.15
Aug 18, 2026
Merged

chore(dedup): bump shaded jacoco.core to 0.8.15 to raise the Java ceiling#186
slayerjain merged 1 commit into
mainfrom
chore/jacoco-0.8.15

Conversation

@slayerjain

Copy link
Copy Markdown
Member

What

Bumps org.jacoco:org.jacoco.core in keploy-sdk/pom.xml from 0.8.12 → 0.8.15.

Why

The ASM shaded into keploy-sdk.jar comes from this dependency, and it is an independent ceiling on the bytecode dynamic dedup can instrument — separate from the jacocoagent.jar in k8s-proxy's init image. Dedup needs both jars to read the app, so the lower one wins.

While this sat on 0.8.12 it was the lower one. It, not the agent, is what capped dynamic dedup at Java 22.

Evidence

Built this module both ways and read the shaded ASM out of each jar:

jacoco.core shaded ASM declares JaCoCo officially supports
0.8.12 (before) V23 Java 22
0.8.15 (after) V27 Java 26
(k8s-proxy's jacocoagent 0.8.15) V27 Java 26

The 0.8.12 row reproduces the "tops out at Opcodes.V23" note k8s-proxy carried, and shows why it was read one version too high: the highest version ASM declares is its experimental one, a release ahead of what it accepts by default.

Effect

The SDK's shaded ASM now matches the agent's. Once a release carrying this is pinned as KEPLOY_SDK_VERSION, k8s-proxy can raise dedupinject.SDKShadedASMMaxJava to 26 and the effective ceiling — min(JaCoCoOfficialMaxJava, SDKShadedASMMaxJava) — becomes Java 26.

k8s-proxy's build now verifies this automatically: it reads the real shaded ASM out of keploy-sdk.jar on every image build and fails if the constant over-promises.

Verification

mvn -pl keploy-sdk package and the module's tests pass unchanged against 0.8.15.

Follow-up

A release needs cutting so KEPLOY_SDK_VERSION can be bumped in k8s-proxy/build/dedup-jars/build.sh.

…ling

The ASM shaded into keploy-sdk.jar comes from this dependency, and it is an
independent ceiling on the bytecode dynamic dedup can instrument — separate from
the jacocoagent.jar in k8s-proxy's init image. While it sat on 0.8.12 it was the
LOWER of the two, so it, not the agent, is what capped dedup at Java 22.

Measured by building this module both ways and reading the shaded ASM out of
each jar:

  jacoco.core 0.8.12  ->  ASM declares V23   (JaCoCo officially supports Java 22)
  jacoco.core 0.8.15  ->  ASM declares V27   (JaCoCo officially supports Java 26)

The 0.8.12 row reproduces the "tops out at Opcodes.V23" note k8s-proxy carried,
and shows why it was read one version too high: the highest version ASM DECLARES
is its experimental one, which sits a release ahead of what it accepts by default.

With this, the SDK's shaded ASM matches the agent's (both V27 / Java 26), so once
a release carrying it is pinned as KEPLOY_SDK_VERSION, k8s-proxy can raise
dedupinject.SDKShadedASMMaxJava to 26 and the effective ceiling —
min(JaCoCoOfficialMaxJava, SDKShadedASMMaxJava) — becomes Java 26.

Build and the module's tests pass unchanged against 0.8.15.

Signed-off-by: Shubham Jain <shubham@keploy.io>
@slayerjain
slayerjain merged commit 317d93f into main Aug 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant