diff --git a/CHANGELOG.md b/CHANGELOG.md index 144bfe91565..4ca6cb151da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Changelog +## 0.26.8 + +* `Versions`: + * `KSLog`: `1.5.1` -> `1.5.2` + * `Compose`: `1.9.2` -> `1.9.3` + * `Ktor`: `3.3.1` -> `3.3.2` +* `Coroutines`: + * Add simple suspend function `suspendPoint` which will ensure that current coroutine is active to let it be + destroyable even in case it have non-suspendable nature + ## 0.26.7 * `Versions`: diff --git a/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SuspendPoint.kt b/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SuspendPoint.kt new file mode 100644 index 00000000000..2954f8e8141 --- /dev/null +++ b/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SuspendPoint.kt @@ -0,0 +1,15 @@ +package dev.inmo.micro_utils.coroutines + +import kotlinx.coroutines.currentCoroutineContext +import kotlinx.coroutines.ensureActive + +/** + * Ensures that the current coroutine context is still active and throws a [kotlinx.coroutines.CancellationException] + * if the coroutine has been canceled. + * + * This function provides a convenient way to check the active status of a coroutine, which is useful + * to identify cancellation points in long-running or suspendable operations. + * + * @throws kotlinx.coroutines.CancellationException if the coroutine context is no longer active. + */ +suspend fun suspendPoint() = currentCoroutineContext().ensureActive() \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index ad67b9865ca..62359e05cba 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,5 +18,5 @@ crypto_js_version=4.1.1 # Project data group=dev.inmo -version=0.26.7 -android_code_version=306 +version=0.26.8 +android_code_version=307 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cfe1d0ac472..afbcda87547 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,9 +6,9 @@ kt-coroutines = "1.10.2" kotlinx-browser = "0.5.0" -kslog = "1.5.1" +kslog = "1.5.2" -jb-compose = "1.9.2" +jb-compose = "1.9.3" jb-compose-material3 = "1.9.0" jb-compose-icons = "1.7.8" jb-exposed = "0.61.0" @@ -20,7 +20,7 @@ sqlite = "3.50.1.0" korlibs = "5.4.0" uuid = "0.8.4" -ktor = "3.3.1" +ktor = "3.3.2" gh-release = "2.5.2" @@ -28,13 +28,13 @@ koin = "4.1.1" okio = "3.16.2" -ksp = "2.3.1" +ksp = "2.3.2" kotlin-poet = "2.2.0" -versions = "0.52.0" +versions = "0.53.0" nmcp = "1.2.0" -android-gradle = "8.10.+" +android-gradle = "8.12.+" dexcount = "4.0.0" android-coreKtx = "1.17.0" diff --git a/gradle/templates/enableMPPAndroid.gradle b/gradle/templates/enableMPPAndroid.gradle index 6e735f74752..1f97e734e15 100644 --- a/gradle/templates/enableMPPAndroid.gradle +++ b/gradle/templates/enableMPPAndroid.gradle @@ -1,6 +1,9 @@ kotlin { androidTarget { - publishAllLibraryVariants() + publishLibraryVariants( + "release", + "debug", + ) compilations.all { kotlinOptions { jvmTarget = "17"