From 7339dd8354cd675b2ef4a39e013a2d48fdda7dd8 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 27 Mar 2025 20:53:29 +0600 Subject: [PATCH 1/6] start 0.25.4 --- CHANGELOG.md | 2 ++ gradle.properties | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 566065eac49..728415436df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog +## 0.25.4 + ## 0.25.3 * `Coroutines`: diff --git a/gradle.properties b/gradle.properties index e934dd22763..87d42ae962b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,5 +15,5 @@ crypto_js_version=4.1.1 # Project data group=dev.inmo -version=0.25.3 -android_code_version=293 +version=0.25.4 +android_code_version=294 From 26650e9b6c9c50069d6ec2b7f232a670fc05730b Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Thu, 27 Mar 2025 20:54:41 +0600 Subject: [PATCH 2/6] add SmartKeyRWLocker.withWriteLocks extension with vararg keys --- CHANGELOG.md | 3 +++ .../dev/inmo/micro_utils/coroutines/SmartKeyRWLocker.kt | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 728415436df..999a3c5b14d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.25.4 +* `Coroutines`: + * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys + ## 0.25.3 * `Coroutines`: diff --git a/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SmartKeyRWLocker.kt b/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SmartKeyRWLocker.kt index 407eec5add4..1f92ed2651b 100644 --- a/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SmartKeyRWLocker.kt +++ b/coroutines/src/commonMain/kotlin/dev/inmo/micro_utils/coroutines/SmartKeyRWLocker.kt @@ -221,4 +221,6 @@ suspend inline fun SmartKeyRWLocker.withWriteLocks(keys: Iterable, unlockWrite(it) } } -} \ No newline at end of file +} + +suspend inline fun SmartKeyRWLocker.withWriteLocks(vararg keys: T, action: () -> R): R = withWriteLocks(keys.asIterable(), action) From 5d95c3eb9c007e39e3f6c98339470668dd8d5277 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Mon, 31 Mar 2025 11:30:56 +0600 Subject: [PATCH 3/6] update dependencies --- CHANGELOG.md | 3 +++ gradle/libs.versions.toml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 999a3c5b14d..c8230b85c13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## 0.25.4 +* `Versions`: + * `Ktor`: `3.1.1` -> `3.1.2` + * `Koin`: `4.0.2` -> `4.0.3` * `Coroutines`: * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0f32dc7d040..aeb1a597aae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,11 +15,11 @@ sqlite = "3.49.1.0" korlibs = "5.4.0" uuid = "0.8.4" -ktor = "3.1.1" +ktor = "3.1.2" gh-release = "2.5.2" -koin = "4.0.2" +koin = "4.0.3" okio = "3.10.2" From e269d0d20637cb933f916e5c198fbea0b5d968fc Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 2 Apr 2025 16:05:33 +0600 Subject: [PATCH 4/6] fix in transactions --- CHANGELOG.md | 2 ++ transactions/src/commonMain/kotlin/TransactionsDSL.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8230b85c13..c470ff82327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * `Koin`: `4.0.2` -> `4.0.3` * `Coroutines`: * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys +* `Transactions`: + * Fix order of rollback actions calling ## 0.25.3 diff --git a/transactions/src/commonMain/kotlin/TransactionsDSL.kt b/transactions/src/commonMain/kotlin/TransactionsDSL.kt index a743b03c4a9..358701cbf8c 100644 --- a/transactions/src/commonMain/kotlin/TransactionsDSL.kt +++ b/transactions/src/commonMain/kotlin/TransactionsDSL.kt @@ -71,7 +71,7 @@ suspend fun doSuspendTransaction( return runCatching { transactionsDSL.block() }.onFailure { e -> - transactionsDSL.rollbackActions.forEach { + transactionsDSL.rollbackActions.reversed().forEach { runCatching { it.invoke(e) }.onFailure { ee -> From 66dac2086c5b654b093565350c1abc1183df49f5 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 2 Apr 2025 16:09:40 +0600 Subject: [PATCH 5/6] update koin --- CHANGELOG.md | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c470ff82327..8e62db63770 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ * `Versions`: * `Ktor`: `3.1.1` -> `3.1.2` - * `Koin`: `4.0.2` -> `4.0.3` + * `Koin`: `4.0.2` -> `4.0.4` * `Coroutines`: * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys * `Transactions`: diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aeb1a597aae..c2719b201f1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ktor = "3.1.2" gh-release = "2.5.2" -koin = "4.0.3" +koin = "4.0.4" okio = "3.10.2" From b1a96b6ecb3760e94c98319cd0df65d94866b910 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 2 Apr 2025 16:52:08 +0600 Subject: [PATCH 6/6] fix transactions dsl --- transactions/src/commonMain/kotlin/TransactionsDSL.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/transactions/src/commonMain/kotlin/TransactionsDSL.kt b/transactions/src/commonMain/kotlin/TransactionsDSL.kt index 358701cbf8c..76db5e960d6 100644 --- a/transactions/src/commonMain/kotlin/TransactionsDSL.kt +++ b/transactions/src/commonMain/kotlin/TransactionsDSL.kt @@ -2,7 +2,7 @@ package dev.inmo.micro_utils.transactions typealias TransactionDSLRollbackLambda = suspend (Throwable) -> Unit class TransactionsDSL internal constructor() { - internal val rollbackActions = LinkedHashSet() + internal val rollbackActions = ArrayList() internal fun addRollbackAction(rollbackAction: TransactionDSLRollbackLambda) { rollbackActions.add(rollbackAction) @@ -71,9 +71,10 @@ suspend fun doSuspendTransaction( return runCatching { transactionsDSL.block() }.onFailure { e -> - transactionsDSL.rollbackActions.reversed().forEach { + for (i in transactionsDSL.rollbackActions.lastIndex downTo 0) { + val rollbackAction = transactionsDSL.rollbackActions[i] runCatching { - it.invoke(e) + rollbackAction.invoke(e) }.onFailure { ee -> onRollbackStepError(ee) }