Skip to content

Remove unnecessary muzzle skip versions after lenient resolution change#16830

Open
Copilot wants to merge 5 commits intomainfrom
copilot/remove-skip-versions-from-muzzle-blocks
Open

Remove unnecessary muzzle skip versions after lenient resolution change#16830
Copilot wants to merge 5 commits intomainfrom
copilot/remove-skip-versions-from-muzzle-blocks

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 20, 2026

Now that #16803 landed lenient artifact resolution in muzzle checks, many skip() entries are no longer needed. Systematically tested each one and removed where possible.

Removed (122 lines across 40 files)

  • Versions that don't exist on Maven Central — skips were no-ops all along (HikariCP 4.0.0, oshi 6.1.1, undertow 2.2.25.Final, all grails skipped versions, AWS SDK 2.17.200, elasticsearch 7.11.0/7.17.8, etc.)
  • Versions outside the declared range with assertInverse — tested as assertFail only; with lenient resolution fewer classes just means more mismatches (spring-webmvc 1.2.x, ktor 1.1.x, play-mvc-2.6 2.3.x, javalin 3.2.0, nats 0.5.x, etc.)
  • Versions that now pass muzzle with lenient resolution — missing transitives (pom-only artifacts, SNAPSHOTs) are silently skipped without affecting the check (log4j 1.2.15, c3p0 pre-releases, jedis-4.0 jedis-3.6.2)

Kept (still needed)

  • play-mvc-2.4, graphql-java, jedis-3.0 — versions are API-compatible with the instrumentation, so assertFail incorrectly passes
  • couchbase-2.0/2.6 — bundle packaging causes genuine muzzle mismatches on 2.7.8
  • grizzly-2.3 5.0.0 — version exists and genuinely fails muzzle validation
  • spring-webmvc-3.1 3.2.1.RELEASE — provided-scope transitives cause false failures
  • spring-ws, zio-http, play-ws — non-resolution reasons (empty jars, policy, behavioral)

Each removal was verified by running the specific muzzle task for the previously-skipped version (e.g. ./gradlew :instrumentation:...:javaagent:muzzle-AssertFail-group-artifact-version), plus full muzzle runs on key modules.

Copilot AI and others added 3 commits March 20, 2026 16:35
These versions are tested as assertFail only (via assertInverse), and
with lenient artifact resolution, missing/broken transitive dependencies
no longer cause hard failures. For assertFail checks, fewer classes only
add more mismatches, so these skips are no longer needed.

Modules updated:
- spring-webmvc-6.0, spring-webmvc-3.1
- spring-web-6.0, spring-web-3.1
- logback-appender-1.0
- opentelemetry-extension-annotations-1.0
- opentelemetry-extension-kotlin-1.0
- opentelemetry-api-1.0
- couchbase-3.4, couchbase-3.1.6, couchbase-3.1, couchbase-3.2
- ktor-3.0, ktor-2.0
- play-mvc-2.6, play-mvc-2.4
- javalin-7.0, javalin-5.0
- nats-2.17
- camel-2.20
- jaxws-axis2-1.6
- elasticsearch-transport-5.0, elasticsearch-transport-5.3
- jaxrs-2.0-resteasy-3.0, jaxrs-2.0-resteasy-3.1 (fail directives)
- apache-httpclient-4.0

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3
…uzzle failures

play-mvc-2.4: version 2.3.9 is close to the range boundary [2.4.0,2.6)
and is actually compatible with the instrumentation, causing assertFail
to incorrectly pass. Keep the skip.

spring-webmvc-3.1: version 3.2.1.RELEASE is inside the range
[3.1.0.RELEASE,6) and has "provided" scope transitive dependencies that
cause false muzzle failures. Keep the skip.

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3
Remove skip versions that are inside the version range but don't actually
exist on Maven Central, or that pass muzzle validation with lenient
resolution.

Successful removals:
- log4j-appender-1.2: skip("1.2.15") - version passes muzzle with lenient
- log4j-mdc-1.2: skip("1.2.15") - version doesn't exist on Maven Central
- jsp-2.3: skip("8.0.9") - version doesn't exist on Maven Central
- hikaricp-3.0: skip("4.0.0") - version doesn't exist on Maven Central
- elasticsearch-6.0: skip("7.11.0","7.17.8") - versions don't exist
- oshi: skip("6.1.1") - version doesn't exist on Maven Central
- spring-rabbit: skip("1.6.4.RELEASE","2.1.1.RELEASE") - versions don't exist
- c3p0: skip("0.9.2-pre2-RELEASE","0.9.2-pre3") - passes muzzle
- alibaba-druid: skip("1.0.30") - version doesn't exist on Maven Central
- guava: skip("32.1.0-android") - version doesn't exist on Maven Central
- jedis-4.0: skip("jedis-3.6.2") - passes muzzle
- aws-sdk-2.2: skip("2.17.200") x5 - version doesn't exist
- grails-3.0: all skips removed - none exist on Maven Central
- undertow: skip("2.2.25.Final") - version doesn't exist
- quartz: skip("1.7.0") - version doesn't exist (outside range anyway)

Kept (still needed):
- couchbase-2.0/2.6: skip("2.7.5","2.7.8") - 2.7.8 has bundle packaging
  causing muzzle failures
- grizzly-2.3: skip("5.0.0") - version exists and fails muzzle
- graphql-java-12.0/20.0: skip("230521-nf-execution") - version is
  compatible, causing assertFail to incorrectly pass
- jedis-3.0: skip("jedis-3.6.2") - version is compatible, causing
  assertFail to incorrectly pass

Co-authored-by: trask <218610+trask@users.noreply.github.com>
Agent-Logs-Url: https://github.com/open-telemetry/opentelemetry-java-instrumentation/sessions/3d17bf9b-d57b-40ba-9978-37278d06ede3
@trask trask marked this pull request as ready for review March 20, 2026 19:20
@trask trask requested a review from a team as a code owner March 20, 2026 19:20
trask added 2 commits March 24, 2026 08:45
…-versions-from-muzzle-blocks

# Conflicts:
#	instrumentation/oshi/javaagent/build.gradle.kts
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.

4 participants