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 AMAlex Styl
11/10/2025, 1:27 PMFailed to process request: No objects found in the repository`
Was able to publish yesterday without an issueAlex Styl
11/17/2025, 2:40 PM> Failed to close staging repository, server at <https://ossrh-staging-api.central.sonatype.com/service/local/> responded with status code 400, body: Failed to process request: No objects found in the repositoryAlex Styl
11/19/2025, 10:11 AMmbonnin
11/21/2025, 1:32 PMBao Le Duc
11/21/2025, 4:44 PMCLOVIS
11/24/2025, 8:00 AMsrc/xxxMain/resources ?
The Kotlin Resources plugins bundle your multiplatform static files into the published artifacts so your users can access them.
New documentation site! • #C078Z1QRHL3Colton Idle
11/24/2025, 7:19 PMMatt Nelson
12/01/2025, 4:33 PMUTF-8 encoding/decoding to a library of mine. I have 2 replacement strategies for invalid sequences available from commonMain, and am wondering which I should use for the default.
class UTF8: EncoderDecoder {
class ReplacementStrategy private constructor {
companion object {
// Encodes/decodes UTF-8 the same way Kotlin/JVM does.
val U_003F // ...
// Encodes/decodes UTF-8 the same way Kotlin Js/WasmJs/Wasi/Native does.
val U_FFFD // ...
// Initalizes to U_003F on Jvm, and U_FFFD on all other platforms.
val KOTLIN // ...
// Throw on invalid sequences
val THROW // ...
}
}
}
The current default that I am using is UTF8.ReplacementStrategy.KOTLIN, but wondering if that is the best choice before publishing this feature release.
Kotlin's String.decodeToByteArray() and ByteArray.encodeToString() implementations are different on non-JVM platforms than JVM, producing different results; the above pseudo-code outlines that.
Context: okio and kotlinx-io UTF-8 implementations are the equivalent of UTF8.ReplacementStrategy.U_003F
Thoughts?eygraber
12/03/2025, 2:47 AM