Skip to content

refactor: rename root package org.kpipe → io.github.eschizoid.kpipe#149

Merged
eschizoid merged 3 commits into
mainfrom
refactor/package-rename-io-github-eschizoid
Jun 5, 2026
Merged

refactor: rename root package org.kpipe → io.github.eschizoid.kpipe#149
eschizoid merged 3 commits into
mainfrom
refactor/package-rename-io-github-eschizoid

Conversation

@eschizoid

Copy link
Copy Markdown
Owner

Summary

  • Rename the root Java package from org.kpipe to io.github.eschizoid.kpipe across all 12 modules + examples + benchmarks so the runtime FQN matches the Maven Central group (io.github.eschizoid).
  • Source moves + import rewrites only — no behavior change, no public API shape change.

What's in the diff

  • 205 .java files: package + import declarations
  • 37 source-root directories renamed via git mv (preserves rename history)
  • 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 OtelTracer.DEFAULT_INSTRUMENTATION_NAME updated to match the new namespace — these are metric/tracing identifier strings, so users on the old names will see a one-time series break
  • README, tracked project CLAUDE.md, javadoc code blocks
  • Spotless reformat to absorb longer FQNs in README line-wrap

Deliberately 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.customer test .proto fixture — 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 — passes
  • Unit tests pass (the one Testcontainers failure is a local Docker flake on KPipeProducerIntegrationTest — unrelated to the rename, will validate on CI)
  • CI green
  • Verify OTel meter names show up under the new namespace in a downstream consumer (optional smoke check)

Migration note for users

Downstream callers must update their imports from org.kpipe.* to io.github.eschizoid.kpipe.*. The artifact coordinates and class shape are unchanged — it's a sed across import statements.

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.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.java module names + exports/requires accordingly.
  • Updated documentation (README + package-info.java/module-info.java docs) 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.

Comment thread lib/kpipe-api/src/main/java/module-info.java Outdated
Comment thread lib/kpipe-tracing-otel/src/main/java/module-info.java Outdated
eschizoid added 2 commits June 5, 2026 06:08
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

codecov Bot commented Jun 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (main@35d05a2). Learn more about missing BASE report.
✅ All tests successful. No failed tests found.

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.
📢 Have feedback on the report? Share it here.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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: ConsumerMetrics is an SPI (with noop()), not the type you “use … to create an instrumented instance”. The OTel-backed concrete implementation is OtelConsumerMetrics (or another ConsumerMetrics implementation).

@eschizoid eschizoid requested a review from Copilot June 5, 2026 12:01
@eschizoid eschizoid merged commit f899f79 into main Jun 5, 2026
6 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 214 out of 214 changed files in this pull request and generated no new comments.

@eschizoid eschizoid deleted the refactor/package-rename-io-github-eschizoid branch June 7, 2026 14:01
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.

2 participants