Skip to content

Commit c0e2f45

Browse files
committed
Plan oshi and elasticsearch-transport-common base-version renames
1 parent e803c69 commit c0e2f45

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

package-name-exceptions-plan.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Updated again on 2026-05-19 after deciding app-server/framework module names for
1515
Updated on 2026-05-22 after documenting how patch-level base versions map to module names.
1616
Updated again on 2026-05-22 after PR 25 merged, Java util logging PR 22 was closed, and app-server/framework PR 27 was split into Payara and Quarkus/Tomcat PRs.
1717
Updated on 2026-05-26 after PRs 27a, 27b, and the Spring testing-package alignment cleanup merged.
18+
Updated again on 2026-05-26 after auditing remaining unversioned-allowlist entries against the documented base-version convention and planning PRs 29-30.
1819

1920
## Goal
2021

@@ -367,6 +368,54 @@ Suggested verification:
367368
./gradlew generateFossaConfiguration :instrumentation:quarkus-resteasy-reactive-1.11:javaagent:test :instrumentation:quarkus-resteasy-reactive-1.11:quarkus-2.0-testing:compileTestJava :instrumentation:quarkus-resteasy-reactive-1.11:quarkus-3.0-testing:compileTestJava :instrumentation:quarkus-resteasy-reactive-1.11:quarkus-3.9-testing:compileTestJava :instrumentation:tomcat:tomcat-jdbc-8.5:javaagent:test :instrumentation:tomcat:tomcat-jdbc-8.5:javaagent:testStableSemconv
368369
```
369370

371+
### PR 29: OSHI module name
372+
373+
Modules:
374+
375+
- `oshi` -> `oshi-5.0`
376+
377+
Expected package changes:
378+
379+
- `io.opentelemetry.instrumentation.oshi` -> `io.opentelemetry.instrumentation.oshi.v5_0`
380+
- `io.opentelemetry.javaagent.instrumentation.oshi` -> `io.opentelemetry.javaagent.instrumentation.oshi.v5_0`
381+
382+
Notes:
383+
384+
- OSHI is a regular third-party library instrumentation with a real minimum version, not a `*-common` abstraction; per the base-version convention in `docs/contributing/writing-instrumentation.md`, the module name should include the major/minor line of the oldest supported library version.
385+
- Javaagent muzzle is `[5.0.0,)` and compiles against `com.github.oshi:oshi-core:5.0.0`; library compiles against `5.3.1` (with a `5.5.0` arm-mac test override). Use `5.0` as the module base version because the javaagent muzzle floor is `5.0.0`.
386+
- Keep `oshi` as the main instrumentation name and add `oshi-5.0` as the versioned alias.
387+
- Update `settings.gradle.kts`, `.fossa.yml`, documentation inventory, and the testing module reference.
388+
389+
Suggested verification:
390+
391+
```bash
392+
.github/scripts/check-package-names.sh
393+
./gradlew generateFossaConfiguration :instrumentation:oshi-5.0:javaagent:test :instrumentation:oshi-5.0:library:test
394+
```
395+
396+
### PR 30: Elasticsearch transport common module name
397+
398+
Modules:
399+
400+
- `elasticsearch-transport-common` -> `elasticsearch-transport-common-5.0`
401+
402+
Expected package change:
403+
404+
- `io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.common` -> `io.opentelemetry.javaagent.instrumentation.elasticsearch.transport.common.v5_0`
405+
406+
Notes:
407+
408+
- The common javaagent module has a direct `compileOnly("org.elasticsearch.client:transport:5.0.0")` dependency and is shared by `elasticsearch-transport-5.0`, `elasticsearch-transport-5.3`, and `elasticsearch-transport-6.0`; per #16090 this is the `<lib>-common-<major.minor>` shape.
409+
- Use `5.0` as the base version because that is the minimum supported version across the sibling modules and matches the common module's own `compileOnly` floor.
410+
- Update `settings.gradle.kts`, sibling module Gradle references, and the testing module path.
411+
412+
Suggested verification:
413+
414+
```bash
415+
.github/scripts/check-package-names.sh
416+
./gradlew :instrumentation:elasticsearch:elasticsearch-transport-common-5.0:javaagent:test :instrumentation:elasticsearch:elasticsearch-transport-5.0:javaagent:compileTestJava :instrumentation:elasticsearch:elasticsearch-transport-5.3:javaagent:compileTestJava :instrumentation:elasticsearch:elasticsearch-transport-6.0:javaagent:compileTestJava
417+
```
418+
370419
## Do Later
371420

372421
These are probably not the next easiest wins:
@@ -384,6 +433,13 @@ These are probably not the next easiest wins:
384433
- `spring-webmvc-common` was completed in PR 25, its testing package follow-up is planned above as PR 28, and the `spring-cloud-gateway-common` testing package decision is planned above as PR 26. `jetty-common`, `tomcat-common`, and `opensearch-rest-common` were completed in PRs 23-24.
385434
- `jaxrs-common`: keep unversioned. The javaagent module has no direct JAX-RS API dependency and acts as cross-generation helper/bootstrap code used by JAX-RS 1.0, 2.0, 3.0, and Quarkus RESTEasy Reactive. Keep it separate from the already version-scoped `jaxrs-2.0-common`, `jaxrs-3.0-common`, `jaxrs-common-2.0`, and `jaxrs-common-3.0` modules.
386435
- `servlet-common`: keep unversioned. This matches #16090's pure abstraction/variant shape: shared code for both `javax.servlet` and `jakarta.servlet`, with `servlet-common-javax` as the variant-specific module. Because it includes published `library` packages, treat any future package changes as public API policy, not package-only cleanup.
436+
- `netty-common`: keep unversioned. No direct Netty compile dependency; explicitly listed as the canonical pure-abstraction example in `.github/agents/knowledge/module-naming.md`. Sibling `netty-common-4.0` carries the version-scoped shared code.
437+
- `lettuce-common`: keep unversioned. No direct Lettuce compile dependency; matches the `netty-common` pure-abstraction shape and is shared by `lettuce-5.0` and `lettuce-5.1`.
438+
- `spring-cloud-gateway-common`: keep unversioned. No direct Spring Cloud Gateway compile dependency; shared by `spring-cloud-gateway-2.0`, `spring-cloud-gateway-2.2`, and the gateway webflux/webmvc sibling modules.
439+
- `elasticsearch-transport-common`: rename to `elasticsearch-transport-common-5.0` (planned above as PR 30). It has a direct `org.elasticsearch.client:transport:5.0.0` compile dependency, matching #16090's `<lib>-common-<major.minor>` shape.
440+
- Non-common third-party library modules on the unversioned allowlist need module renames:
441+
- `oshi`: rename to `oshi-5.0` (planned above as PR 29).
442+
- `spring-boot-resources`: special case - not a `*-common` module and has no Spring Boot compile dependency (parses `application.yaml`/`bootstrap.yaml` by file convention via `snakeyaml-engine`). Defer until we decide whether a base version is meaningful here; if so, the natural floor is the earliest Spring Boot release whose YAML config layout we still parse.
387443
- App-server/framework module-name cleanups for `payara`, `quarkus-resteasy-reactive`, and `tomcat-jdbc` were completed in PRs 27a-27b.
388444
- Treat this as a checker-policy cleanup first: document legitimate unversioned javaagent module shapes, then only rename leftovers that are true module-name debt.
389445

0 commit comments

Comments
 (0)