ziv kesten
07/16/2025, 6:57 AMeygraber
07/17/2025, 10:36 PMjoseph_ivie
07/21/2025, 4:17 PMOscar
07/23/2025, 12:35 PM@Deprecated, but this obviously gives warnings on all usages of the given classes. The aim is to warn users to not use these classes, but internally I have to keep support for them. Is there a way to suppress deprecation warnings of my own code without suppressing deprecations from let's say other libraries etc?bod
07/23/2025, 12:46 PM@Deprecated("Use NewName instead")
class OldName
typealias NewName = OldName
// ...
val x = OldName() // <- warning
val y = NewName() // <- warning too, bummer.joseph_ivie
07/23/2025, 5:02 PMjoseph_ivie
07/23/2025, 7:33 PMjoseph_ivie
07/23/2025, 10:17 PMMugo
07/24/2025, 4:34 PMimport org.gradle.accessors.dm.LibrariesForLibs
plugins {
id("com.android.kotlin.multiplatform.library")
id("id-cmp")
}
val libs = the<LibrariesForLibs>()
kotlin {
jvm("desktop")
// iosX64()
// iosArm64()
// iosSimulatorArm64()
androidLibrary {
experimentalProperties["android.experimental.kmp.enableAndroidResources"] = true
compileSdk = libs.versions.android.compileSdk.get().toInt()
minSdk = libs.versions.android.minSdk.get().toInt()
}
}
The Problem: For the 2 libraries WITHOUT iOS targets - when I try to import them in feature modules of separate apps, I can't access anything from commonMain. However, I CAN access them from androidMain and desktopMain source sets.
Plot twist: The same applications can access classes/packages from their own composeApp modules just fine.
Anyone seen this before or have ideas? Is this a known KMP issue with partial target configurations?mbonnin
07/29/2025, 9:36 AMjoseph_ivie
07/30/2025, 9:45 PMMez Pahlan
08/03/2025, 7:14 AMWARNING by default and then removing the signatures on a major version bump. But why, for example, shouldn't I just mark everything as HIDDEN by default?
What approaches do you take?mbonnin
08/10/2025, 12:42 PMcheckLegacyAbi is not a dependency of build anymore? My CI builds are mostly running ./gradlew build so they have effectively not been checking the ABI any more.mbonnin
08/10/2025, 12:44 PMlegacy feels weird, my current ABI is not "legacy", it's just a tiny bit "older" than the tip of mainAbhimanyu
08/25/2025, 11:29 AMCLOVIS
08/29/2025, 10:08 AMmbonnin
08/30/2025, 1:16 PMMatt Nelson
09/28/2025, 1:07 PMNode.js synchronous API under the hood.
• Adding the Async API would allow use of Node.js callback API.
• Adding the Async API would allow supporting (in a limited context such as WebWorkers) browser functionality.
For Js/WasmJs I need the suspendCancellableCoroutine function from kotlinx-coroutines
All other targets (Jvm/Native) would simply call the blocking functions from their xxxAsync() actual function definitions
Should I
1. Suck it up and add the kotlinx-coroutines dependency to the Js/WasmJs source sets
2. Expose public functions for Js/WasmJs with a Continuation argument marked as @OptIn(InternalApi::class) and have a separate extension module kmp-file:async with the kotlinx-coroutines dependency and all xxxAsync() functions defined.
3. Something else? Like wrapping the callback function from Kotlin in js("async { block() }")
I would really like to avoid the additional dependency...iseki
09/29/2025, 10:05 PMBen Woodworth
10/02/2025, 9:32 PMrusshwolf
10/08/2025, 4:11 PMColton Idle
10/11/2025, 12:43 PMMatt Nelson
10/11/2025, 5:55 PMcontract defined, and another inline function points to it, do I also have to specify the contract in that inline function?
E.g. Does foo also need the contract defined?
public inline fun foo(block: () -> Unit): Boolean = bar(block)
@OptIn(ExperimentalContracts::class)
public inline fun bar(block: () -> Unit): Boolean {
contract { callsInPlace(block, InvocationKind.AT_MOST_ONCE) }
// ...
}Colton Idle
10/13/2025, 1:42 PMColton Idle
10/18/2025, 6:53 PMMatt Nelson
10/19/2025, 7:00 PMMatt Nelson
10/23/2025, 12:02 AMpublic final class MyClass(something: Any) to public open class MyClass(something: Any), will that break backward compatibility?Colton Idle
10/25/2025, 2:50 AMBuildConfig to insert api keys and other values into my build to be able to access programatically. But in a plain' ol kotlin/java library there is no BuildConfig. I have seen some other libraries or plugins that attempt to be BuildConfig but in the regular library world but that just seems... off?Colton Idle
10/29/2025, 4:51 AM