Skip to content

Split Kotomi libraries from the Komok product - #397

Draft
IRus wants to merge 16 commits into
mainfrom
refactor/split-kotomi
Draft

IRus wants to merge 16 commits into
mainfrom
refactor/split-kotomi

Conversation

@IRus

@IRus IRus commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Komok now contains the product and consumes reusable libraries from Heapy/kotomi. Libraries use the io.heapy.kotomi Maven group and packages, with names such as kotomi-runtime and kotomi-runtime-compiler.

  • Move technology modules, their documentation, and build tooling into the standalone Kotomi repository, preserving their Git history. Keep the original JVM implementation of kotomi-to-be-injected there.
  • Wire the application through Kotomi providers and load its compiler plugin as an external Maven dependency. Keep product modules, application packaging, and coverage checks in Komok.
  • Pin Kotomi to 4d9ae783c64adcfc3c32e33813cce7ab18a1a838 in kotomi.ref. CI and the documented local bootstrap build that revision into Maven Local before building Komok. Maven Central publication remains a separate release step.
  • Give Kotomi a benefits-focused README and a runnable quickstart. The previous private Heapy/kotomi repository is now Heapy/kotomi-agent, with its local working changes preserved.

Validation:

  • Kotomi JVM build, 1,144 tests, API and KLib API checks passed; 15 libraries published to Maven Local.
  • The exact Kotomi README quickstart compiled and printed Hello, world! and Hello, Kotomi!.
  • Komok JVM build, tests and coverage check passed: 8 tests passed, 1 existing test skipped.
  • Komok distTar passed; the archive includes Kotomi dependencies and no old komok-tech-* JARs.
  • Both GitHub Actions workflows passed actionlint. Locked product build plugins verified clean after applying the split.
  • GitHub CI passed for Kotomi and Komok; the PR's landing build and CodeQL checks also passed.

IRus and others added 16 commits October 19, 2026 11:24
Introduce the coroutine-based runtime graph, memoized bindings, lifecycle, fork semantics and JVM tests. Include the runtime design document and register the module alongside the existing DI implementation.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Provide Log, Metric and Retry annotations and their runtime helpers, with wrapper tests and the Micrometer dependency.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Generate module graphs, service bindings, mocks and wrappers through KSP. Include the wrapper SPI, negative compilation tests and a reusable toolchain template.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Switch application and infrastructure providers to runtime graph APIs. Update consumer configuration and ABI baselines, add cross-module service providers, and remove the obsolete Netty demo entry point.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Exercise generated graphs, provider resolution, fork replacement, lifecycle, mocks and wrappers. Include a third-party wrapper implementation and all-open coverage.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Remove the superseded DI, experimental DI-EZ and decorator modules after their consumers have migrated. Prune their build registration, catalog entries and template, and update the library list.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Route application startup and DAO messages to standard output and remove the corresponding Logger companions. This logging behavior change is independent of the runtime migration.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Preserve the existing module review notes separately from implementation. These historical notes span the repository and include Gradle-era verification commands; they are not required to build or run the runtime.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant