phoenix icon indicating copy to clipboard operation
phoenix copied to clipboard

Upgrade to Kotlin 2.0.10

Open dpad85 opened this issue 5 months ago • 3 comments

This PR upgrades Kotlin as well as some other libraries to Kotlin 2.0.10. This upgrade is required due to side effects of iOS 18 and Xcode 16.

  • ktor to 2.3.12
  • kotlinx.serialisation to 1.7.1 (transitive, see https://github.com/ACINQ/lightning-kmp/pull/701)
  • kotlinx.coroutine to 1.9.0 (transitive)
  • kermit to 2.0.4 (transitive)
  • skie to 0.8.4
  • sqldelight to 2.0.2

Issues found

iOS: SKIE does not support kotlin 2.0.20 yet

We have to use Kotlin 2.0.10 instead, although lightning-kmp can keep using 2.0.20 without issues.

kotlinx.serialisation v1.7.2 is not compatible

This is a side effect of SKIE. kotlinx.serialisation v1.7.2 requires Kotlin 2.0.20 (because they use the new kotlin.uuid.Uuid object). In the meantime, we must use kotlinx.serialisation v1.7.1.

iOS: Framework script removed

In the build phases of phoenix-ios-framework we have a script that manually copied the phoenix-shared framework (and DSYM) generated by gradle in phoenix-shared/build into the Xcode DerivedData folder for the phoenix-ios application.

This script now fails with Kotlin 2.0 because the files are already copied during the build process. @robbiehanson It should be investigated further but it seems this script is not needed anymore, and thus must be removed.

iOS: Odd cache error

⚠️ needs investigation

An odd build error occurs in :phoenix-shared:linkDebugFrameworkIosArm64:

/Users/xxx/.gradle/caches/modules-2/files-2.1/app.cash.sqldelight/coroutines-extensions-iosarm64/2.0.2/51f8ddc76a4aa3d45402f46017e7b8405a5f6761/coroutines-extensions is cached (in /Users/xxx/.konan/kotlin-native-prebuilt-macos-x86_64-2.0.10/klib/cache/ios_arm64-gSTATIC-pl/app.cash.sqldelight:sqldelight-coroutines-extensions/unspecified/1v8rzgt0jt9l5.30bg0yuy4wun9/app.cash.sqldelight:sqldelight-coroutines-extensions-cache/bin/libapp.cash.sqldelight:sqldelight-coroutines-extensions-cache.a), but its dependency isn't: /Users/xxx/.konan/kotlin-native-prebuilt-macos-x86_64-2.0.10/klib/common/stdlib

Although it's mentioned in the log, it does not seem linked to the sqldelight coroutine extension. This error is "fixed" by removing the kotlinOptions.freeCompilerArgs += "-Xallocator=std" in phoenix-shared/build.gradle.kts.

A similar report can be found here.

dpad85 avatar Sep 18 '24 14:09 dpad85