Skip to content

refactor: modernize build system, redesign KSP processor, and automate Maven Central release - #16

Open
y9vad9 wants to merge 7 commits into
latestfrom
refactor/modernize-and-fix-processor
Open

y9vad9 wants to merge 7 commits into
latestfrom
refactor/modernize-and-fix-processor

Conversation

@y9vad9

@y9vad9 y9vad9 commented Oct 3, 2026

Copy link
Copy Markdown
Owner

Why

The project had broken dependency resolution from old build-logic leaking AGP into KSP, several codegen crashes in common edge cases, and no working pipeline to publish to Maven Central.

Notable Changes

  • Generated Immutable* classes from interfaces are now data classes.
  • @BuilderImpl and @DSLBuilderImpl now work when either @ImmutableImpl or @MutableImpl is present (previously failed if both were not declared together).
  • Nullable properties in builders now default to null instead of crashing at runtime on uninitialized Delegates.notNull().
  • Invalid processor targets (concrete classes, missing realization annotations, blank names) now report compiler errors with source locations instead of crashing the compiler daemon with an unhandled exception.
  • Codegen now passes originating KSFile dependencies to enable KSP incremental compilation.
  • Publication is migrated from the deprecated custom deploy script to Maven Central using vanniktech-maven-publish via GitHub releases.

Testing

  • Added unit tests covering all codegen targets, abstract classes, and builders (sample.ImplierTest).
  • Added compiler diagnostic tests via Kotlin Compile Testing (sample.CompilerDiagnosticsTest) to verify compilation failures on invalid targets.
  • ./gradlew check passes cleanly.

@y9vad9 y9vad9 self-assigned this Oct 3, 2026
@y9vad9 y9vad9 added bug Something isn't working enhancement New feature or request labels Oct 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant