fix: kotlinx-serialization version mismatch #43
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Problem
bitkit-android uses Kotlin 2.2.21, but ldk-node was using Kotlin 1.9.20 with kotlinx-serialization 1.6.0. This caused
NoSuchMethodErrorwhen trying to serializeEventobjects due to version incompatibility.kotlinx-serialization 1.6.x is only compatible with Kotlin 1.9.x. For Kotlin 2.2.x, we need kotlinx-serialization 1.9.x.
Solution
Upgrade all Kotlin-related dependencies to versions compatible with Kotlin 2.2.x:
JVM Bindings Updates
uniffi-jvm.tomlconfig withgenerate_serializable_types = trueandgenerate_immutable_records = trueuniffi_bindgen_generate_kotlin.shto usegobley-uniffi-bindgen(same as Android).copy()for immutable data class modificationsFiles Changed
uniffi-jvm.toml(new) - JVM binding generation configscripts/uniffi_bindgen_generate_kotlin.sh- Use gobley with configbindings/kotlin/ldk-node-jvm/lib/build.gradle.kts- Dependencies updatebindings/kotlin/ldk-node-jvm/gradle/wrapper/gradle-wrapper.properties- Gradle 8.0bindings/kotlin/ldk-node-jvm/lib/src/test/kotlin/.../LibraryTest.kt- Use.copy()bindings/kotlin/ldk-node-android/build.gradle.kts- Kotlin 2.2.0bindings/kotlin/ldk-node-android/lib/build.gradle.kts- Dependencies updateTest plan
cd bindings/kotlin/ldk-node-android && ./gradlew buildcd bindings/kotlin/ldk-node-jvm && ./gradlew build -x test@SerializableannotationsRelease