refactor: rename root package org.kpipe → io.github.eschizoid.kpipe#149
Conversation
Aligns the Java package namespace with the Maven Central group
(io.github.eschizoid) so the publish coordinates and runtime FQNs
match. Source moves + import rewrites only — no behavior change.
- 205 .java files: package + import declarations
- 37 source-root directories: org/kpipe → io/github/eschizoid/kpipe
- 11 module-info.java exports updated
- 7 example build.gradle.kts Main-Class attributes
- OTel meter names ("org.kpipe.consumer"/"org.kpipe.producer"/
"org.kpipe.pipeline") and DEFAULT_INSTRUMENTATION_NAME updated to
match the new namespace
- README, project CLAUDE.md, javadoc code blocks
- spotless reformat to absorb longer FQNs in README wrap
benchmarks/results/*.json left unchanged — historical JMH output
records the FQN that was actually executed at run time.
The com.kpipe.customer test proto fixture is unrelated (different
namespace), left alone.
There was a problem hiding this comment.
Pull request overview
This PR renames the root Java namespace and JPMS module names from org.kpipe.* to io.github.eschizoid.kpipe.* so the runtime FQNs align with the Maven Central group (io.github.eschizoid). It’s primarily package/import/module rewrites plus a few identifier string updates for OpenTelemetry.
Changes:
- Renamed Java packages across modules/tests/examples/benchmarks and updated JPMS
module-info.javamodule names + exports/requires accordingly. - Updated documentation (README +
package-info.java/module-info.javadocs) and example build manifests (Main-Class) to match the new FQNs. - Updated OTel meter / instrumentation name strings to the new namespace (
io.github.eschizoid.kpipe.*).
Reviewed changes
Copilot reviewed 214 out of 214 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Updates example imports, module names, and inline references to the new package namespace. |
| lib/kpipe-api/src/main/java/module-info.java | Renames the API JPMS module and exported package name. |
| lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/Stream.java | Updates imports and in-doc references to the new namespace. |
| lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/DefaultBatchSink.java | Updates in-doc references to the new namespace. |
| lib/kpipe-consumer/src/main/java/io/github/eschizoid/kpipe/consumer/KPipeConsumer.java | Renames consumer package and updates imports/doc references to new namespace. |
| lib/kpipe-producer/src/main/java/io/github/eschizoid/kpipe/producer/KPipeProducer.java | Renames producer package and updates imports/doc references to new namespace. |
| lib/kpipe-producer/src/main/java/io/github/eschizoid/kpipe/producer/package-info.java | Moves/updates producer package docs to the new namespace. |
| lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/registry/MessageFormat.java | Updates registry SPI docs to the new namespace. |
| lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/registry/RegistryKey.java | Updates registry key docs to the new namespace. |
| lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/sink/package-info.java | Updates sink SPI docs to the new namespace. |
| lib/kpipe-schema-registry-confluent/src/main/java/io/github/eschizoid/kpipe/schemaregistry/confluent/package-info.java | Updates schema registry module docs to the new namespace. |
| lib/kpipe-metrics-otel/src/main/java/io/github/eschizoid/kpipe/metrics/otel/package-info.java | Updates metrics OTel module docs to the new namespace. |
| lib/kpipe-tracing-otel/src/main/java/module-info.java | Renames tracing OTel JPMS module and exported package name. |
Comments suppressed due to low confidence (16)
lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/DefaultBatchSink.java:12
- This
///doc comment is split by a//continuation line, which breaks the Markdown documentation comment block and drops the wrapped line from generated docs. Use///for the continuation line.
lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/Stream.java:314 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/Stream.java:320 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/Stream.java:342 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-api/src/main/java/io/github/eschizoid/kpipe/Stream.java:351 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-producer/src/main/java/io/github/eschizoid/kpipe/producer/KPipeProducer.java:101 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-consumer/src/main/java/io/github/eschizoid/kpipe/consumer/KPipeConsumer.java:188 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-consumer/src/main/java/io/github/eschizoid/kpipe/consumer/KPipeConsumer.java:569 - This wrapped continuation line uses
//inside a///Markdown documentation comment, which breaks the doc comment block and drops the line from generated docs. Use///for the continuation line.
lib/kpipe-schema-registry-confluent/src/main/java/io/github/eschizoid/kpipe/schemaregistry/confluent/package-info.java:5 - This package-level Markdown doc comment has a wrapped continuation line starting with
//, which breaks the surrounding///documentation comment block (that line won’t be included in generated docs). Use///for the continuation line.
lib/kpipe-format-json/src/main/java/io/github/eschizoid/kpipe/format/json/package-info.java:5 - This package-level Markdown doc comment has a wrapped continuation line starting with
//, which breaks the///documentation comment block and drops that line from generated docs. Use///for the wrapped line.
lib/kpipe-format-avro/src/main/java/io/github/eschizoid/kpipe/format/avro/package-info.java:5 - This package-level Markdown doc comment has a wrapped continuation line starting with
//, which breaks the///documentation comment block and drops that line from generated docs. Use///for the wrapped line.
lib/kpipe-format-protobuf/src/main/java/io/github/eschizoid/kpipe/format/protobuf/package-info.java:5 - This package-level Markdown doc comment has a wrapped continuation line starting with
//, which breaks the///documentation comment block and drops that line from generated docs. Use///for the wrapped line.
lib/kpipe-metrics-otel/src/main/java/io/github/eschizoid/kpipe/metrics/otel/package-info.java:7 - This package-level Markdown doc comment has wrapped continuation lines starting with
//, which breaks the surrounding///documentation comment block (those lines won’t be included in generated docs). Use///consistently for wrapped lines in the bullet list.
lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/sink/package-info.java:9 - This package-level Markdown doc comment has a wrapped continuation line starting with
//, which breaks the///documentation comment block and drops that line from generated docs. Use///for the wrapped line.
lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/registry/MessageFormat.java:15 - This
///Markdown documentation comment contains wrapped lines starting with//, which breaks the doc comment block and drops those lines from generated docs. Use///consistently for wrapped bullet items.
lib/kpipe-core/src/main/java/io/github/eschizoid/kpipe/registry/RegistryKey.java:16 - This
///Markdown documentation comment contains wrapped lines starting with//, which breaks the doc comment block and drops those lines from generated docs. Use///consistently for wrapped bullet items.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
When the rename made FQNs longer, spotless re-wrapped some /// (Java 25 markdown) Javadoc comment lines but left the continuations as // — which silently drops those lines from javadoc output. Copilot's review on PR #149 flagged it; this fixes every occurrence repo-wide. 23 files touched: a mix of module-info.java, package-info.java, and Stream/KPipeConsumer/KPipeProducer/RegistryKey/MessageFormat/Tracer doc comments. Pure comment correctness — no code or behavior change. Detection scan: every file is now clean — no /// block has a // continuation line in the line immediately following.
Two broken markdown links surfaced after the rename when CI ran the full javadoc task: - kpipe-consumer/.../consumer/package-info.java pointed at [io.github.eschizoid.kpipe.KPipe] and [...Stream], but those live in kpipe-api which depends on kpipe-consumer (not the other way). The consumer's javadoc classpath genuinely can't see them. Replaced with plain `KPipe` / `Stream` backticks — the prose still reads fine. - kpipe-producer/.../producer/package-info.java had a bare [Tracer] link. Inside a package-info there's no class scope to resolve short names from, so markdown javadoc errors. Expanded to the FQN [io.github.eschizoid.kpipe.producer.tracing.Tracer]. `./gradlew javadoc` is now clean across every module.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #149 +/- ##
=======================================
Coverage ? 75.54%
Complexity ? 757
=======================================
Files ? 75
Lines ? 2871
Branches ? 357
=======================================
Hits ? 2169
Misses ? 531
Partials ? 171 ☔ View full report in Codecov by Harness. |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 214 out of 214 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (2)
lib/kpipe-producer/src/main/java/io/github/eschizoid/kpipe/producer/tracing/Tracer.java:15
- Doc comment formatting: the continuation line for item 2 isn’t indented, which will likely break the intended numbered-list layout in generated docs. Keep the KafkaMessageSink link aligned with the surrounding continuation lines so it renders as part of the same paragraph/list item.
lib/kpipe-consumer/src/main/java/io/github/eschizoid/kpipe/consumer/KPipeConsumer.java:570 - This builder doc is misleading:
ConsumerMetricsis an SPI (withnoop()), not the type you “use … to create an instrumented instance”. The OTel-backed concrete implementation isOtelConsumerMetrics(or anotherConsumerMetricsimplementation).
Summary
org.kpipetoio.github.eschizoid.kpipeacross all 12 modules + examples + benchmarks so the runtime FQN matches the Maven Central group (io.github.eschizoid).What's in the diff
.javafiles:package+importdeclarationsgit mv(preserves rename history)module-info.javaexports updatedbuild.gradle.ktsMain-Classattributesorg.kpipe.consumer/org.kpipe.producer/org.kpipe.pipeline) andOtelTracer.DEFAULT_INSTRUMENTATION_NAMEupdated to match the new namespace — these are metric/tracing identifier strings, so users on the old names will see a one-time series breakDeliberately not touched
benchmarks/results/*.json— historical JMH output records the FQN that was actually executed at run time. Rewriting would falsely imply the bench was rerun under the new class name.com.kpipe.customertest.protofixture — different namespace, unrelated.Maven coordinates
Gradle group was already
io.github.eschizoid(build.gradle.kts:50) — only the Java package needed to catch up. Published artifact IDs (kpipe-api,kpipe-consumer, etc.) are unchanged.Test plan
./gradlew compileJava compileTestJava— clean across all modules./gradlew spotlessApply && ./gradlew spotlessCheck— passesKPipeProducerIntegrationTest— unrelated to the rename, will validate on CI)Migration note for users
Downstream callers must update their imports from
org.kpipe.*toio.github.eschizoid.kpipe.*. The artifact coordinates and class shape are unchanged — it's a sed across import statements.