From 97057061c39c8167ac0241cbc0452a6b60f7375f Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 13:29:04 +0300 Subject: [PATCH 1/9] Update Kotlin to 1.9.21 --- build.gradle.kts | 21 +++++++++++++++++++-- gradle.properties | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 17077fb6..abcfbbb8 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,9 +1,11 @@ import io.gitlab.arturbosch.detekt.Detekt -import org.gradle.jvm.tasks.Jar import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL +import org.gradle.jvm.tasks.Jar +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_4 plugins { - kotlin("multiplatform") version "1.8.22" + kotlin("multiplatform") version "1.9.21" id("org.jetbrains.dokka") version "1.8.20" `maven-publish` id("io.github.gradle-nexus.publish-plugin") version "1.3.0" @@ -40,6 +42,13 @@ apply(plugin = "io.github.gradle-nexus.publish-plugin") kotlin { explicitApi() + + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + apiVersion.set(KOTLIN_1_4) + languageVersion.set(KOTLIN_1_4) + } + jvm { compilations.all { // kotlin compiler compatibility options @@ -59,6 +68,14 @@ kotlin { } } nodejs() + + compilations.all { + // kotlin compiler compatibility options + kotlinOptions { + apiVersion = "1.9" + languageVersion = "1.9" + } + } } android { publishLibraryVariants("release", "debug") diff --git a/gradle.properties b/gradle.properties index a26c047d..b46c029c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,3 +5,4 @@ systemProp.org.gradle.internal.publish.checksums.insecure=true org.gradle.jvmargs=-Xmx2048m # see https://kotlinlang.org/docs/whatsnew18.html#sourcedirectories kotlin.mpp.androidSourceSetLayoutVersion=2 +kotlin.mpp.applyDefaultHierarchyTemplate=false From 0ae1709a5cf481b34194c171ac226798c4da7cf0 Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 15:08:47 +0300 Subject: [PATCH 2/9] Move to default kotlin language and api versions --- build.gradle.kts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index abcfbbb8..1ee69bd1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,6 @@ import io.gitlab.arturbosch.detekt.Detekt import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL import org.gradle.jvm.tasks.Jar -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi -import org.jetbrains.kotlin.gradle.dsl.KotlinVersion.KOTLIN_1_4 plugins { kotlin("multiplatform") version "1.9.21" @@ -43,18 +41,10 @@ apply(plugin = "io.github.gradle-nexus.publish-plugin") kotlin { explicitApi() - @OptIn(ExperimentalKotlinGradlePluginApi::class) - compilerOptions { - apiVersion.set(KOTLIN_1_4) - languageVersion.set(KOTLIN_1_4) - } - jvm { compilations.all { // kotlin compiler compatibility options kotlinOptions { - apiVersion = "1.4" - languageVersion = "1.4" jvmTarget = "1.8" } } @@ -68,14 +58,6 @@ kotlin { } } nodejs() - - compilations.all { - // kotlin compiler compatibility options - kotlinOptions { - apiVersion = "1.9" - languageVersion = "1.9" - } - } } android { publishLibraryVariants("release", "debug") From 4c2127fb131b3d909b585b115d102992d49555fe Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 15:09:23 +0300 Subject: [PATCH 3/9] Drop JS LEGACY --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 1ee69bd1..690a84eb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -49,7 +49,7 @@ kotlin { } } } - js(BOTH) { + js { browser { testTask { useKarma { From 3212aeda597ad52e2987778332b80476e5a9ff67 Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 15:10:03 +0300 Subject: [PATCH 4/9] Update native to conform to the new kotlin --- .../io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt | 2 ++ .../io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt index a51ed3c0..bbfb2198 100644 --- a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt +++ b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt @@ -1,9 +1,11 @@ package io.github.oshai.kotlinlogging +import kotlinx.cinterop.ExperimentalForeignApi import platform.posix.fprintf import platform.posix.stderr public object ConsoleOutputAppender : FormattingAppender() { + @OptIn(ExperimentalForeignApi::class) override fun logFormattedMessage(loggingEvent: KLoggingEvent, formattedMessage: Any?) { if (loggingEvent.level == Level.ERROR) { fprintf(stderr, "$formattedMessage\n") diff --git a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt index 9ca99631..646980ff 100644 --- a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt +++ b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt @@ -1,6 +1,6 @@ package io.github.oshai.kotlinlogging -import kotlin.native.concurrent.AtomicReference +import kotlin.concurrent.AtomicReference public expect val DefaultAppender: Appender From 7c1e78e6559476dca3fd74990ede37389a6fb6f4 Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 15:55:00 +0300 Subject: [PATCH 5/9] Update native to conform to the new kotlin --- .../kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt | 3 +++ .../github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt | 2 +- .../io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt | 2 +- .../io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt | 3 ++- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt index 59e89aaa..f9a2d783 100644 --- a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt +++ b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt @@ -1,5 +1,8 @@ +@OptIn(ExperimentalForeignApi::class) + package io.github.oshai.kotlinlogging +import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.ptr import platform.darwin.OS_LOG_TYPE_DEBUG import platform.darwin.OS_LOG_TYPE_DEFAULT diff --git a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt index d9b2c927..0b32ce6d 100644 --- a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt +++ b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/KotlinLoggingConfiguration.kt @@ -1,6 +1,6 @@ package io.github.oshai.kotlinlogging -import kotlin.native.concurrent.AtomicReference +import kotlin.concurrent.AtomicReference public object KotlinLoggingConfiguration { public var subsystem: AtomicReference = AtomicReference(null) diff --git a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt index 41592817..144e3e2e 100644 --- a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt +++ b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt @@ -3,9 +3,9 @@ package io.github.oshai.kotlinlogging.internal import io.github.oshai.kotlinlogging.DarwinKLogger import io.github.oshai.kotlinlogging.KLogger import io.github.oshai.kotlinlogging.KotlinLoggingConfiguration -import kotlin.native.concurrent.AtomicReference import platform.darwin.OS_LOG_DEFAULT import platform.darwin.os_log_create +import kotlin.concurrent.AtomicReference /** factory methods to obtain a [KLogger] */ internal actual object KLoggerFactory { diff --git a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt index bbfb2198..92625262 100644 --- a/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt +++ b/src/nativeMain/kotlin/io/github/oshai/kotlinlogging/ConsoleOutputAppender.kt @@ -1,3 +1,5 @@ +@file:OptIn(ExperimentalForeignApi::class) + package io.github.oshai.kotlinlogging import kotlinx.cinterop.ExperimentalForeignApi @@ -5,7 +7,6 @@ import platform.posix.fprintf import platform.posix.stderr public object ConsoleOutputAppender : FormattingAppender() { - @OptIn(ExperimentalForeignApi::class) override fun logFormattedMessage(loggingEvent: KLoggingEvent, formattedMessage: Any?) { if (loggingEvent.level == Level.ERROR) { fprintf(stderr, "$formattedMessage\n") From 27b9e10e422ec5afedb550c7e0417ec845332f8a Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 23:49:40 +0300 Subject: [PATCH 6/9] Fix file annotation on darwin --- .../kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt index f9a2d783..24a5bb78 100644 --- a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt +++ b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/DarwinKLogger.kt @@ -1,4 +1,4 @@ -@OptIn(ExperimentalForeignApi::class) +@file:OptIn(ExperimentalForeignApi::class) package io.github.oshai.kotlinlogging From f6d44b6c71b0075f0f682679cac1e32463c23be9 Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Sun, 10 Dec 2023 23:58:07 +0300 Subject: [PATCH 7/9] Add `-Xexpect-actual-classes` compiler argument --- build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 690a84eb..71827c57 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ import io.gitlab.arturbosch.detekt.Detekt import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL import org.gradle.jvm.tasks.Jar +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi plugins { kotlin("multiplatform") version "1.9.21" @@ -41,6 +42,11 @@ apply(plugin = "io.github.gradle-nexus.publish-plugin") kotlin { explicitApi() + @OptIn(ExperimentalKotlinGradlePluginApi::class) + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } + jvm { compilations.all { // kotlin compiler compatibility options From 1708e96c8236a6f98a1961567e42c74752f4cbd9 Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Mon, 11 Dec 2023 10:35:14 +0300 Subject: [PATCH 8/9] Update the order of imports to pass checks --- .../io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt index 144e3e2e..882dae95 100644 --- a/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt +++ b/src/darwinMain/kotlin/io/github/oshai/kotlinlogging/internal/KLoggerFactory.kt @@ -3,9 +3,9 @@ package io.github.oshai.kotlinlogging.internal import io.github.oshai.kotlinlogging.DarwinKLogger import io.github.oshai.kotlinlogging.KLogger import io.github.oshai.kotlinlogging.KotlinLoggingConfiguration +import kotlin.concurrent.AtomicReference import platform.darwin.OS_LOG_DEFAULT import platform.darwin.os_log_create -import kotlin.concurrent.AtomicReference /** factory methods to obtain a [KLogger] */ internal actual object KLoggerFactory { From a542f52c79bc516424568cb3270ab966221758ff Mon Sep 17 00:00:00 2001 From: Azim Muradov Date: Mon, 18 Dec 2023 14:11:23 +0300 Subject: [PATCH 9/9] Set the api and language version explicitly --- build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 71827c57..9f951c63 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,6 +2,7 @@ import io.gitlab.arturbosch.detekt.Detekt import org.gradle.api.tasks.testing.logging.TestExceptionFormat.FULL import org.gradle.jvm.tasks.Jar import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinVersion plugins { kotlin("multiplatform") version "1.9.21" @@ -44,6 +45,10 @@ kotlin { @OptIn(ExperimentalKotlinGradlePluginApi::class) compilerOptions { + // kotlin compiler compatibility options + apiVersion.set(KotlinVersion.KOTLIN_1_9) + languageVersion.set(KotlinVersion.KOTLIN_1_9) + freeCompilerArgs.add("-Xexpect-actual-classes") }