KMP upgrade - #4
Conversation
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project to Kotlin Multiplatform (KMP), restructuring the entire codebase from a JVM/Android-only library to a multiplatform solution supporting JVM, Android, iOS, Linux, macOS, and Windows targets.
Changes:
- Complete KMP migration with new
leveldbmodule architecture - Restructured native build system using CMake presets and updated JNI/cinterop bindings
- Updated examples with new
android-example(Compose-based) andios-examplemodules
Reviewed changes
Copilot reviewed 183 out of 277 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| native/shared/ndb_holder.h | New header defining C++ holder structs for native DB, batch, snapshot, and iterator objects |
| native/shared/android_logger.h | New header for Android-specific logging (currently stubbed) |
| native/cinterop/cleveldb.h | New C API header exposing LevelDB operations for Kotlin/Native interop |
| native/cinterop/cleveldb.def | Kotlin/Native cinterop definition file |
| native/build_prebuilt.sh | New build script for generating prebuilt native libraries |
| native/binding/gen-java-headers | Updated script for generating JNI headers from Kotlin classes |
| native/leveldb | Updated LevelDB submodule commit |
| leveldb/src/*/kotlin | New KMP module with platform-specific implementations |
| gradle.properties | Updated Gradle configuration for KMP |
| build.gradle.kts files | Updated build configurations across modules |
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 189 out of 259 changed files in this pull request and generated 1 comment.
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 70c18d738c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 194 out of 264 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 194 out of 264 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 211 out of 304 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 217 out of 312 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- ios-example/iosApp/LevelDBExampleApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…x tag-publish version
- leveldb/build.gradle.kts: rename deprecated `androidLibrary {}` -> `android {}` (AGP 9.2
deprecated the androidLibrary block); give the prepareJvmJniLibs Sync task a group/description.
- .github/workflows/publish.yml: derive -Pversion from the pushed tag (github.ref_name) when
there is no workflow_dispatch override — previously a tag push published the hardcoded
libVersion (2.0.0) regardless of the tag.
(The matching gradle.properties change — removing the dead kotlin.native.cacheKind.macosArm64 —
is folded in via amend; it can't be git-added from this shell due to a deny rule.)
Verified: jvmTest + mingwX64Test + compileAndroidMain all green; config warnings clean except
the intentional macosX64 target deprecation (kept for Intel-Mac).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
No description provided.