WasmWasi Support - #484
Merged
Merged
Conversation
faogustavo
requested review from
KevinSchildhorn
and
a lite review from Copilot
and removed request for
Copilot
August 12, 2026 16:45
Contributor
There was a problem hiding this comment.
Pull request overview
This PR modernizes the Kermit build/tooling setup and expands Kotlin Multiplatform target support to include wasmWasi, aligning the library with Kotlin’s newer Wasm target options and consolidating target configuration into convention/build-logic.
Changes:
- Upgrades Kotlin/Gradle/AGP and related dependencies, and adjusts Android test compilation usage (
androidHostTest). - Introduces a new
kermit.multiplatform-libraryconvention plugin and shared target helpers to centralize multiplatform target setup (including optionalwasmWasi). - Updates tests and test utilities to use coroutines + atomic APIs instead of prior concurrency/testhelper utilities.
Reviewed changes
Copilot reviewed 29 out of 35 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/sample/shared/build.gradle.kts | Migrates sample shared module to Android KMP library plugin alias + kotlin { android { ... } } target config. |
| samples/sample/gradle/wrapper/gradle-wrapper.properties | Upgrades sample Gradle wrapper to 9.7.0. |
| samples/sample/app/build.gradle.kts | Adjusts sample app plugins; currently removes Kotlin Android plugin application. |
| samples/sample-production/shared/build.gradle.kts | Migrates production sample shared module to Android KMP library plugin alias + kotlin { android { ... } } config. |
| samples/sample-production/gradle/wrapper/gradle-wrapper.properties | Upgrades production sample Gradle wrapper to 9.7.0. |
| samples/sample-production/app/build.gradle.kts | Adjusts production sample app plugins; currently removes Kotlin Android plugin application. |
| kotlin-js-store/package-lock.json | Large JS toolchain lockfile refresh; adds GitHub-based Karma dependency and updates many packages. |
| kermit/src/commonTest/kotlin/co/touchlab/kermit/LoggerTest.kt | Reworks multithreading tests to use coroutines (runTest, Dispatchers.Default) instead of testhelp threading helpers. |
| kermit/build.gradle.kts | Switches to convention plugin + shared target configuration (allTargets). |
| kermit-test/src/commonMain/kotlin/co/touchlab/kermit/TestLogWriter.kt | Replaces Stately frozen list usage with atomic list updates for cross-target concurrency safety. |
| kermit-test/build.gradle.kts | Switches to convention plugin + allTargets(..., wasiEnabled = true) and removes Stately dependency. |
| kermit-simple/build.gradle.kts | Switches to convention plugin and shared webTargets()/nativeTargets() helpers. |
| kermit-io/build.gradle.kts | Switches to convention plugin and shared target helpers; updates Android test dependencies to androidHostTest. |
| kermit-core/src/wasmWasiMain/kotlin/co/touchlab/kermit/PlatformLogWriter.wasmWasi.kt | Adds wasmWasi platformLogWriter actual implementation. |
| kermit-core/src/wasmWasiMain/kotlin/co/touchlab/kermit/KermitConfig.kt | Adds wasmWasi mutableLoggerConfigInit actual implementation. |
| kermit-core/src/nativeMain/kotlin/co/touchlab/kermit/KermitConfig.kt | Removes native-only atomic config implementation now shared from common. |
| kermit-core/src/commonMain/kotlin/co/touchlab/kermit/AtomicMutableLoggerConfig.kt | Introduces shared atomic-backed MutableLoggerConfig implementation in commonMain. |
| kermit-core/src/androidHostTest/kotlin/co/touchlab/kermit/LogcatWriterTest.kt | Adds host-side test validating Logcat writer behavior without Robolectric stubs. |
| kermit-core/src/androidHostTest/kotlin/co/touchlab/kermit/LogcatLoggerTest.kt | Adds Robolectric-backed Logcat logger tests. |
| kermit-core/build.gradle.kts | Switches to convention plugin + allTargets(..., wasiEnabled = true) and updates Android test compilation. |
| gradle/wrapper/gradle-wrapper.properties | Upgrades root Gradle wrapper to 9.7.0. |
| gradle/libs.versions.toml | Upgrades Kotlin/AGP/coroutines/etc; adds coroutines-test; switches Android library plugin id to KMP Android library plugin. |
| gradle.properties | Removes enableWasm/Sonatype host flag; keeps publishing/signing properties. |
| extensions/kermit-ktor/build.gradle.kts | Switches to convention plugin + shared target configuration (allTargets). |
| extensions/kermit-koin/build.gradle.kts | Switches to convention plugin + shared target helpers; updates target coverage choices. |
| extensions/kermit-crashlytics/build.gradle.kts | Switches to convention plugin + shared target helpers for Android/JVM + Apple. |
| extensions/kermit-bugsnag/build.gradle.kts | Switches to convention plugin + shared target helpers for Android/JVM + Apple. |
| convention-plugins/src/main/kotlin/wasm-setup.gradle.kts | Removes prior wasm setup convention plugin. |
| convention-plugins/src/main/kotlin/kermit/targets.kt | Adds shared Kotlin MPP target helper functions (android/jvm/web/native + optional wasmWasi). |
| convention-plugins/src/main/kotlin/kermit.multiplatform-library.gradle.kts | Adds new convention plugin for common MPP configuration + publishing + hierarchy template. |
| convention-plugins/settings.gradle.kts | Adds google() repository for resolving Android-related Gradle plugins. |
| convention-plugins/build.gradle.kts | Adds dependency on Android Gradle Plugin artifact for convention plugin compilation. |
| build.gradle.kts | Removes global RequiresOptIn opt-in wiring (now handled by convention plugin). |
Files not reviewed (1)
- kotlin-js-store/package-lock.json: Generated file
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
KevinSchildhorn
approved these changes
Aug 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
#481