From 8aa521890f94b95d4b66da4f25240d64a4403a26 Mon Sep 17 00:00:00 2001
From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com>
Date: Sun, 14 Jul 2024 23:00:07 +0200
Subject: [PATCH] chore(deps): update kotlin (#800)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [com.google.devtools.ksp](https://goo.gle/ksp)
([source](https://togithub.com/google/ksp)) | `2.0.0-1.0.22` ->
`2.0.0-1.0.23` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin](https://goo.gle/ksp)
([source](https://togithub.com/google/ksp)) | `2.0.0-1.0.22` ->
`2.0.0-1.0.23` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
|
[org.jetbrains.kotlinx:kotlinx-coroutines-play-services](https://togithub.com/Kotlin/kotlinx.coroutines)
| `1.4.1` -> `1.8.1` |
[![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.4.1/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.4.1/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
---
> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.
---
### Release Notes
google/ksp (com.google.devtools.ksp)
###
[`v2.0.0-1.0.23`](https://togithub.com/google/ksp/compare/2.0.0-1.0.22...2.0.0-1.0.23)
[Compare
Source](https://togithub.com/google/ksp/compare/2.0.0-1.0.22...2.0.0-1.0.23)
Kotlin/kotlinx.coroutines
(org.jetbrains.kotlinx:kotlinx-coroutines-play-services)
###
[`v1.8.1`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-181)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.8.0...1.8.1)
- Remove the `@ExperimentalTime` annotation from usages of `TimeSource`
([#4046](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4046)).
Thanks, [@hfhbd](https://togithub.com/hfhbd)!
- Introduce a workaround for an Android bug that caused an occasional
`NullPointerException` when setting the `StateFlow` value on old Android
devices
([#3820](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3820)).
- No longer use `kotlin.random.Random` as part of `Dispatchers.Default`
and `Dispatchers.IO` initialization
([#4051](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4051)).
- `Flow.timeout` throws the exception with which the channel was closed
([#4071](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4071)).
- Small tweaks and documentation fixes.
##### Changelog relative to version 1.8.1-Beta
- `Flow.timeout` throws the exception with which the channel was closed
([#4071](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4071)).
- Small documentation fixes.
###
[`v1.8.0`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-180)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.3...1.8.0)
- Implement the library for the Web Assembly (Wasm) for JavaScript
([#3713](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3713)).
Thanks [@igoriakovlev](https://togithub.com/igoriakovlev)!
- Major Kotlin version update: was 1.8.20, became 1.9.21.
- On Android, ensure that `Dispatchers.Main !=
Dispatchers.Main.immediate`
([#3545](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3545),
[#3963](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3963)).
- Fixed a bug that caused `Flow` operators that limit cancel the
upstream flow to forget that they were already finished if there is
another such operator upstream
([#4035](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4035),
[#4038](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4038))
- `kotlinx-coroutines-debug` is published with the correct Java 9 module
info
([#3944](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3944)).
- `kotlinx-coroutines-debug` no longer requires manually setting
`DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the
default
([#3783](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3783)).
- `kotlinx-coroutines-test`: set the default timeout of `runTest` to 60
seconds, added the ability to configure it on the JVM with the
`kotlinx.coroutines.test.default_timeout=10s`
([#3800](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3800)).
- `kotlinx-coroutines-test`: fixed a bug that could lead to not all
uncaught exceptions being reported after some tests failed
([#3800](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3800)).
- `delay(Duration)` rounds nanoseconds up to whole milliseconds and not
down
([#3920](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3920)).
Thanks [@kevincianfarini](https://togithub.com/kevincianfarini)!
- `Dispatchers.Default` and the default thread for background work are
guaranteed to use the same context classloader as the object containing
it them
([#3832](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3832)).
- It is guaranteed that by the time `SharedFlow.collect` suspends for
the first time, it's registered as a subscriber for that `SharedFlow`
([#3885](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3885)).
Before, it was also true, but not documented.
- Atomicfu version is updated to 0.23.1, and Kotlin/Native atomic
transformations are enabled, reducing the footprint of coroutine-heavy
code
([#3954](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3954)).
- Added a workaround for miscompilation of `withLock` on JS
([#3881](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3881)).
Thanks [@CLOVIS-AI](https://togithub.com/CLOVIS-AI)!
- Small tweaks and documentation fixes.
##### Changelog relative to version 1.8.0-RC2
- `kotlinx-coroutines-debug` no longer requires manually setting
`DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the
default
([#3783](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3783)).
- Fixed a bug that caused `Flow` operators that limit cancel the
upstream flow to forget that they were already finished if there is
another such operator upstream
([#4035](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4035),
[#4038](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4038))
- Small documentation fixes.
###
[`v1.7.3`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-173)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.2...1.7.3)
- Disabled the publication of the multiplatform library metadata for the
old (1.6 and earlier) KMP Gradle plugin
([#3809](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3809)).
- Fixed a bug introduced in 1.7.2 that disabled the coroutine debugger
in IDEA
([#3822](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3822)).
###
[`v1.7.2`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-172)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.1...1.7.2)
##### Bug fixes and improvements
- Coroutines debugger no longer keeps track of coroutines with empty
coroutine context
([#3782](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3782)).
- `CopyableThreadContextElement` now properly copies an element when
crossing the coroutine boundary in `flowOn`
([#3787](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3787)).
Thanks [@wanyingd1996](https://togithub.com/wanyingd1996)!
- Coroutine timeouts no longer prevent K/N `newSingleThreadContext` from
closing
([#3768](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3768)).
- A non-linearizability in `Mutex` during `tryLock`/`unlock` sequence
with owners is fixed
([#3745](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3745)).
- Atomicfu version is updated to 0.21.0.
###
[`v1.7.1`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-171)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.0...1.7.1)
##### Bug fixes and improvements
- Special characters in coroutine names in JSON dumps are supported
([#3747](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3747))
- The binary compatibility of the experimental overload of `runTest` is
restored
([#3673](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3673))
- Channels that don't use `onUndeliveredElement` now allocate less
memory
([#3646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3646))
###
[`v1.7.0`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-170)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.4...1.7.0)
##### Core API significant improvements
- New `Channel` implementation with significant performance improvements
across the API
([#3621](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3621)).
- New `select` operator implementation: faster, more lightweight, and
more robust
([#3020](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3020)).
- `Mutex` and `Semaphore` now share the same underlying data structure
([#3020](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3020)).
- `Dispatchers.IO` is added to K/N
([#3205](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3205))
- `newFixedThreadPool` and `Dispatchers.Default` implementations on K/N
were wholly rewritten to support graceful growth under load
([#3595](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3595)).
- `kotlinx-coroutines-test` rework:
- Add the `timeout` parameter to `runTest` for the whole-test timeout,
10 seconds by default
([#3270](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3270)).
This replaces the configuration of quiescence timeouts, which is now
deprecated
([#3603](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3603)).
- The `withTimeout` exception messages indicate if the timeout used the
virtual time
([#3588](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3588)).
- `TestCoroutineScheduler`, `runTest`, and `TestScope` API are promoted
to stable
([#3622](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3622)).
- `runTest` now also fails if there were uncaught exceptions in
coroutines not inherited from the test coroutine
([#1205](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1205)).
##### Breaking changes
- Old K/N memory model is no longer supported
([#3375](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3375)).
- New generic upper bounds were added to reactive integration API where
the language since 1.8.0 dictates
([#3393](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3393)).
- `kotlinx-coroutines-core` and `kotlinx-coroutines-jdk8` artifacts were
merged into a single artifact
([#3268](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3268)).
- Artificial stackframes in stacktrace recovery no longer contain the
`\b` symbol and are now navigable in IDE and supplied with proper
documentation
([#2291](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2291)).
- `CoroutineContext.isActive` returns `true` for contexts without any
job in them
([#3300](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3300)).
##### Bug fixes and improvements
- Kotlin version is updated to 1.8.20
- Atomicfu version is updated to 0.20.2.
- `JavaFx` version is updated to 17.0.2 in `kotlinx-coroutines-javafx`
([#3671](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3671))..
- JPMS is supported
([#2237](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2237)).
Thanks [@lion7](https://togithub.com/lion7)!
- `BroadcastChannel` and all the corresponding API are deprecated
([#2680](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2680)).
- Added all supported K/N targets
([#3601](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3601),
[#812](https://togithub.com/Kotlin/kotlinx.coroutines/issues/812),
[#855](https://togithub.com/Kotlin/kotlinx.coroutines/issues/855)).
- K/N `Dispatchers.Default` is backed by the number of threads equal to
the number of available cores
([#3366](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3366)).
- Fixed an issue where some coroutines' internal exceptions were not
properly serializable
([#3328](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3328)).
- Introduced `Job.parent` API
([#3201](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3201)).
- Fixed a bug when `TestScheduler` leaked cancelled jobs
([#3398](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3398)).
- `TestScope.timeSource` now provides comparable time marks
([#3617](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3617)).
Thanks [@hfhbd](https://togithub.com/hfhbd)!
- Fixed an issue when cancelled `withTimeout` handles were preserved in
JS runtime
([#3440](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3440)).
- Ensure `awaitFrame` only awaits a single frame when used from the main
looper
([#3432](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3432)).
Thanks [@pablobaxter](https://togithub.com/pablobaxter)!
- Obsolete `Class-Path` attribute was removed from
`kotlinx-coroutines-debug.jar` manifest
([#3361](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3361)).
- Fixed a bug when `updateThreadContext` operated on the parent context
([#3411](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3411)).
- Added new `Flow.filterIsInstance` extension
([#3240](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3240)).
- `Dispatchers.Default` thread name prefixes are now configurable with
system property
([#3231](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3231)).
- Added `Flow.timeout` operator as `@FlowPreview`
([#2624](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2624)).
Thanks [@pablobaxter](https://togithub.com/pablobaxter)!
- Improved the performance of the `future` builder in case of exceptions
([#3475](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3475)).
Thanks [@He-Pin](https://togithub.com/He-Pin)!
- `Mono.awaitSingleOrNull` now waits for the `onComplete` signal
([#3487](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3487)).
- `Channel.isClosedForSend` and `Channel.isClosedForReceive` are
promoted from experimental to delicate
([#3448](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3448)).
- Fixed a data race in native `EventLoop`
([#3547](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3547)).
- `Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)` no longer
creates an additional wrapper
([#3442](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3442)).
Thanks [@dovchinnikov](https://togithub.com/dovchinnikov)!
- Various `@FlowPreview` and `@ExperimentalCoroutinesApi` are promoted
to experimental and stable respectively
([#3542](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3542),
[#3097](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3097),
[#3548](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3548)).
- Performance improvements in `Dispatchers.Default` and `Dispatchers.IO`
([#3416](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3416),
[#3418](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3418)).
- Fixed a bug when internal `suspendCancellableCoroutineReusable` might
have hanged
([#3613](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3613)).
- Introduced internal API to process events in the current system
dispatcher
([#3439](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3439)).
- Global `CoroutineExceptionHandler` is no longer invoked in case of
unprocessed `future` failure
([#3452](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3452)).
- Performance improvements and reduced thread-local pressure for the
`withContext` operator
([#3592](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3592)).
- Improved performance of `DebugProbes`
([#3527](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3527)).
- Fixed a bug when the coroutine debugger might have detected the state
of a coroutine incorrectly
([#3193](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3193)).
- `CoroutineDispatcher.asExecutor()` runs tasks without dispatching if
the dispatcher is unconfined
([#3683](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3683)).
Thanks [@odedniv](https://togithub.com/odedniv)!
- `SharedFlow.toMutableList` and `SharedFlow.toSet` lints are introduced
([#3706](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3706)).
- `Channel.invokeOnClose` is promoted to stable API
([#3358](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3358)).
- Improved lock contention in `Dispatchers.Default` and `Dispatchers.IO`
during the startup phase
([#3652](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3652)).
- Fixed a bug that led to threads oversubscription in
`Dispatchers.Default`
([#3642](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3642)).
- Fixed a bug that allowed `limitedParallelism` to perform dispatches
even after the underlying dispatcher was closed
([#3672](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3672)).
- Fixed a bug that prevented stacktrace recovery when the exception's
constructor from `cause` was selected
([#3714](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3714)).
- Improved sanitizing of stracktrace-recovered traces
([#3714](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3714)).
- Introduced an internal flag to disable uncaught exceptions reporting
in tests as a temporary migration mechanism
([#3736](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3736)).
- Various documentation improvements and fixes.
Changelog for previous versions may be found in
[CHANGES_UP_TO\_1.7.md](CHANGES_UP_TO\_1.7.md)
###
[`v1.6.4`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.4)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.3...1.6.4)
- Added `TestScope.backgroundScope` for launching coroutines that
perform work in the background and need to be cancelled at the end of
the test
([#3287](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3287)).
- Fixed the POM of `kotlinx-coroutines-debug` having an incorrect
reference to `kotlinx-coroutines-bom`, which cause the builds of Maven
projects using the debug module to break
([#3334](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3334)).
- Fixed the `Publisher.await` functions in `kotlinx-coroutines-reactive`
not ensuring that the `Subscriber` methods are invoked serially
([#3360](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3360)).
Thank you, [@EgorKulbachka](https://togithub.com/EgorKulbachka)!
- Fixed a memory leak in `withTimeout` on K/N with the new memory model
([#3351](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3351)).
- Added the guarantee that all `Throwable` implementations in the core
library are serializable
([#3328](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3328)).
- Moved the documentation to
([#3342](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3342)).
- Various documentation improvements.
###
[`v1.6.3`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.3)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.2...1.6.3)
- Updated atomicfu version to 0.17.3
([#3321](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3321)),
fixing the projects using this library with JS IR failing to build
([#3305](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3305)).
###
[`v1.6.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.2)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.1...1.6.2)
- Fixed a bug with `ThreadLocalElement` not being correctly updated when
the most outer `suspend` function was called directly without
`kotlinx.coroutines`
([#2930](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2930)).
- Fixed multiple data races: one that might have been affecting
`runBlocking` event loop, and a benign data race in `Mutex`
([#3250](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3250),
[#3251](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3251)).
- Obsolete `TestCoroutineContext` is removed, which fixes the
`kotlinx-coroutines-test` JPMS package being split between
`kotlinx-coroutines-core` and `kotlinx-coroutines-test`
([#3218](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3218)).
- Updated the ProGuard rules to further shrink the size of the resulting
DEX file with coroutines
([#3111](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3111),
[#3263](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3263)).
Thanks, [@agrieve](https://togithub.com/agrieve)!
- Atomicfu is updated to `0.17.2`, which includes a more efficient and
robust JS IR transformer
([#3255](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3255)).
- Kotlin is updated to `1.6.21`, Gradle version is updated to `7.4.2`
([#3281](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3281)).
Thanks,
[@wojtek-kalicinski](https://togithub.com/wojtek-kalicinski)!
- Various documentation improvements.
###
[`v1.6.1`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.1)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.0...1.6.1)
- Rollback of time-related functions dispatching on `Dispatchers.Main`.
This behavior was introduced in 1.6.0 and then found inconvenient and
erroneous
([#3106](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3106),
[#3113](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3113)).
- Reworked the newly-introduced `CopyableThreadContextElement` to solve
issues uncovered after the initial release
([#3227](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3227)).
- Fixed a bug with `ThreadLocalElement` not being properly updated in
racy scenarios
([#2930](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2930)).
- Reverted eager loading of default `CoroutineExceptionHandler` that
triggered ANR on some devices
([#3180](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3180)).
- New API to convert a `CoroutineDispatcher` to a Rx scheduler
([#968](https://togithub.com/Kotlin/kotlinx.coroutines/issues/968),
[#548](https://togithub.com/Kotlin/kotlinx.coroutines/issues/548)).
Thanks [@recheej](https://togithub.com/recheej)!
- Fixed a memory leak with the very last element emitted from `flow`
builder being retained in memory
([#3197](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3197)).
- Fixed a bug with `limitedParallelism` on K/N with new memory model
throwing `ClassCastException`
([#3223](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3223)).
- `CoroutineContext` is added to the exception printed to the default
`CoroutineExceptionHandler` to improve debuggability
([#3153](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3153)).
- Static memory consumption of `Dispatchers.Default` was significantly
reduced
([#3137](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3137)).
- Updated slf4j version in `kotlinx-coroutines-slf4j` from 1.7.25 to
1.7.32.
###
[`v1.6.0`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.0)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.2...1.6.0)
Note that this is a full changelog relative to the 1.5.2 version.
Changelog relative to 1.6.0-RC3 can be found at the end.
##### kotlinx-coroutines-test rework
- `kotlinx-coroutines-test` became a multiplatform library usable from
K/JVM, K/JS, and K/N.
- Its API was completely reworked to address long-standing issues with
consistency, structured concurrency and correctness
([#1203](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1203),
[#1609](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1609),
[#2379](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2379),
[#1749](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1749),
[#1204](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1204),
[#1390](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1390),
[#1222](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1222),
[#1395](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1395),
[#1881](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1881),
[#1910](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1910),
[#1772](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1772),
[#1626](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1626),
[#1742](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1742),
[#2082](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2082),
[#2102](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2102),
[#2405](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2405),
[#2462](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2462)
).
- The old API is deprecated for removal, but the new API is based on the
similar concepts ([README](kotlinx-coroutines-test/README.md)), and the
migration path is designed to be graceful: [migration
guide](kotlinx-coroutines-test/MIGRATION.md).
##### Dispatchers
- Introduced `CoroutineDispatcher.limitedParallelism` that allows
obtaining a view of the original dispatcher with limited parallelism
([#2919](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2919)).
- `Dispatchers.IO.limitedParallelism` usages ignore the bound on the
parallelism level of `Dispatchers.IO` itself to avoid starvation
([#2943](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2943)).
- Introduced new `Dispatchers.shutdown` method for containerized
environments
([#2558](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2558)).
- `newSingleThreadContext` and `newFixedThreadPoolContext` are promoted
to delicate API
([#2919](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2919)).
##### Breaking changes
- When racing with cancellation, the `future` builder no longer reports
unhandled exceptions into the global `CoroutineExceptionHandler`. Thanks
[@vadimsemenov](https://togithub.com/vadimsemenov)!
([#2774](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2774),
[#2791](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2791)).
- `Mutex.onLock` is deprecated for removal
([#2794](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2794)).
- `Dispatchers.Main` is now used as the default source of time for
`delay` and `withTimeout` when present
([#2972](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2972)).
- To opt-out from this behaviour, `kotlinx.coroutines.main.delay` system
property can be set to `false`.
- Java target of coroutines build is now 8 instead of 6
([#1589](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1589)).
- **Source-breaking change**: extension `collect` no longer resolves
when used with a non-in-place argument of a functional type. This is a
candidate for a fix, uncovered after 1.6.0, see
[#3107](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3107)
for the additional details.
##### Bug fixes and improvements
- Kotlin is updated to 1.6.0.
- Kotlin/Native [new memory
model](https://blog.jetbrains.com/kotlin/2021/08/try-the-new-kotlin-native-memory-manager-development-preview/)
is now supported in regular builds of coroutines conditionally depending
on whether `kotlin.native.binary.memoryModel` is enabled
([#2914](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2914)).
- Introduced `CopyableThreadContextElement` for mutable context elements
shared among multiple coroutines. Thanks
[@yorickhenning](https://togithub.com/yorickhenning)!
([#2893](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2893)).
- `transformWhile`, `awaitClose`, `ProducerScope`, `merge`,
`runningFold`, `runingReduce`, and `scan` are promoted to stable API
([#2971](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2971)).
- `SharedFlow.subscriptionCount` no longer conflates incoming updates
and gives all subscribers a chance to observe a short-lived subscription
([#2488](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2488),
[#2863](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2863),
[#2871](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2871)).
- `Flow` exception transparency mechanism is improved to be more
exception-friendly
([#3017](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3017),
[#2860](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2860)).
- Cancellation from `flat*` operators that leverage multiple coroutines
is no longer propagated upstream
([#2964](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2964)).
- `SharedFlow.collect` now returns `Nothing`
([#2789](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2789),
[#2502](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2502)).
- `DisposableHandle` is now `fun interface`, and corresponding inline
extension is removed
([#2790](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2790)).
- `FlowCollector` is now `fun interface`, and corresponding inline
extension is removed
([#3047](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3047)).
- Deprecation level of all previously deprecated signatures is raised
([#3024](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3024)).
- The version file is shipped with each JAR as a resource
([#2941](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2941)).
- Unhandled exceptions on K/N are passed to the standard library
function `processUnhandledException`
([#2981](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2981)).
- A direct executor is used for `Task` callbacks in
`kotlinx-coroutines-play-services`
([#2990](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2990)).
- Metadata of coroutines artifacts leverages Gradle platform to have all
versions of dependencies aligned
([#2865](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2865)).
- Default `CoroutineExceptionHandler` is loaded eagerly and does not
invoke `ServiceLoader` on its exception-handling path
([#2552](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2552)).
- Fixed the R8 rules for `ServiceLoader` optimization
([#2880](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2880)).
- Fixed BlockHound integration false-positives
([#2894](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2894),
[#2866](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2866),
[#2937](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2937)).
- Fixed the exception handler being invoked several times on Android,
thanks to [@1zaman](https://togithub.com/1zaman)
([#3056](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3056)).
- `SendChannel.trySendBlocking` is now available on Kotlin/Native
([#3064](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3064)).
- The exception recovery mechanism now uses `ClassValue` when available
([#2997](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2997)).
- JNA is updated to 5.9.0 to support Apple M1
([#3001](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3001)).
- Obsolete method on internal `Delay` interface is deprecated
([#2979](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2979)).
- Support of deprecated `CommonPool` is removed.
- `@ExperimentalTime` is no longer needed for methods that use
`Duration`
([#3041](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3041)).
- JDK 1.6 is no longer required for building the project
([#3043](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3043)).
- New version of Dokka is used, fixing the memory leak when building the
coroutines and providing brand new reference visuals
(https://kotlin.github.io/kotlinx.coroutines/)
([#3051](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3051),
[#3054](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3054)).
###
[`v1.5.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.2)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.1...1.5.2)
- Kotlin is updated to 1.5.30.
- New native targets for Apple Silicon are introduced.
- Fixed a bug when `onUndeliveredElement` was incorrectly called on
properly received elements on JS
([#2826](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2826)).
- Fixed `Dispatchers.Default` on React Native, it now fully relies on
`setTimeout` instead of stub `process.nextTick`. Thanks to
[@Legion2](https://togithub.com/Legion2)
([#2843](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2843)).
- Optimizations of `Mutex` implementation
([#2581](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2581)).
- `Mutex` implementation is made completely lock-free as stated
([#2590](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2590)).
- Various documentation and guides improvements. Thanks to
[@MasoodFallahpoor](https://togithub.com/MasoodFallahpoor) and
[@Pihanya](https://togithub.com/Pihanya).
###
[`v1.5.1`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.1)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.0...1.5.1)
- Atomic `update`, `getAndUpdate`, and `updateAndGet` operations of
`MutableStateFlow`
([#2720](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2720)).
- `Executor.asCoroutineDispatcher` implementation improvements
([#2601](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2601)):
- If the target executor is `ScheduledExecutorService`, then its
`schedule` API is used for time-related coroutine operations.
- `RemoveOnCancelPolicy` is now part of the public contract.
- Introduced overloads for `Task.asDeferred` and `Task.await` that
accept `CancellationTokenSource` for bidirectional cancellation
([#2527](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2527)).
- Reactive streams are updated to `1.0.3`
([#2740](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2740)).
- `CopyableThrowable` is allowed to modify the exception message during
stacktrace recovery
([#1931](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1931)).
- `CoroutineDispatcher.releaseInterceptedContinuation` is now a `final`
method
([#2785](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2785)).
- Closing a Handler underlying `Handler.asCoroutineDispatcher` now
causes the dispatched coroutines to be canceled on `Dispatchers.IO
(#2778)`.
- Kotlin is updated to 1.5.20.
- Fixed a spurious `ClassCastException` in
`releaseInterceptedContinuation` and `IllegalStateException` from
`tryReleaseClaimedContinuation`
([#2736](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2736),
[#2768](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2768)).
- Fixed inconsistent exception message during stacktrace recovery for
non-suspending channel iterators
([#2749](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2749)).
- Fixed linear stack usage for `CompletableFuture.asDeferred` when the
target future has a long chain of listeners
([#2730](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2730)).
- Any exceptions from `CoroutineDispatcher.isDispatchNeeded` are now
considered as fatal and are propagated to the caller
([#2733](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2733)).
- Internal `DebugProbesKt` (used in the debugger implementation) are
moved from `debug` to `core` module.
###
[`v1.5.0`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.0)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.3...1.5.0)
Note that this is a full changelog relative to 1.4.3 version. Changelog
relative to 1.5.0-RC can be found in the end.
##### Channels API
- Major channels API rework
([#330](https://togithub.com/Kotlin/kotlinx.coroutines/issues/330),
[#974](https://togithub.com/Kotlin/kotlinx.coroutines/issues/974)).
Existing `offer`, `poll`, and `sendBlocking` methods are deprecated,
internal `receiveCatching` and `onReceiveCatching` removed,
`receiveOrNull` and `onReceiveOrNull` are completely deprecated.
Previously deprecated `SendChannel.isFull` declaration is removed.
Channel operators deprecated with `ERROR` are now `HIDDEN`.
- New methods `receiveCatching`, `onReceiveCatching` `trySend`,
`tryReceive`, and `trySendBlocking` along with the new result type
`ChannelResult` are introduced. They provide better type safety, are
less error-prone, and have a consistent future-proof naming scheme. The
full rationale behind this change can be found
[here](https://togithub.com/Kotlin/kotlinx.coroutines/issues/974#issuecomment-806569582).
- `BroadcastChannel` and `ConflatedBroadcastChannel` are marked as
`ObsoleteCoroutinesApi` in the favor or `SharedFlow` and `StateFlow`.
The migration scheme can be found in their documentation. These classes
will be deprecated in the next major release.
- `callbackFlow` and `channelFlow` are promoted to stable API.
##### Reactive integrations
- All existing API in modules `kotlinx-coroutines-rx2`,
`kotlinx-coroutines-rx3`, `kotlinx-coroutines-reactive`,
`kotlinx-coroutines-reactor`, and `kotlinx-coroutines-jdk9` were
revisited and promoted to stable
([#2545](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2545)).
- `publish` is no longer allowed to emit `null` values
([#2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)).
- Misleading `awaitSingleOr*` functions on `Publisher` type are
deprecated
([#2591](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2591)).
- `MaybeSource.await` is deprecated in the favor of `awaitSingle`,
additional lint functions for `Mono` are added in order to prevent
ambiguous `Publisher` usages
([#2628](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2628),
[#1587](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1587)).
- `ContextView` support in `kotlinx-coroutines-reactor`
([#2575](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2575)).
- All reactive builders no longer ignore inner cancellation exceptions
preventing their completion
([#2262](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2262),
[#2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)).
- `MaybeSource.collect` and `Maybe.collect` properly finish when they
are completed without a value
([#2617](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2617)).
- All exceptions are now consistently handled according to reactive
specification, whether they are considered 'fatal' or not by reactive
frameworks
([#2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)).
##### Other improvements
- Kotlin version is upgraded to 1.5.0 and JVM target is updated to 1.8.
- `Flow.last` and `Flow.lastOrNull` operators
([#2246](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2246)).
- `Flow.runningFold` operator
([#2641](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2641)).
- `CoroutinesTimeout` rule for JUnit5
([#2197](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2197)).
- Internals of `Job` and `AbstractCoroutine` was reworked, resulting in
smaller code size, less memory footprint, and better performance
([#2513](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2513),
[#2512](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2512)).
- `CancellationException` from Kotlin standard library is used for
cancellation on Koltin/JS and Kotlin/Native
([#2638](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2638)).
- Introduced new `DelicateCoroutinesApi` annotation that warns users
about potential target API pitfalls and suggests studying API's
documentation first. The only delicate API right now is `GlobalScope`
([#2637](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2637)).
- Fixed bug introduced in `1.4.3` when `kotlinx-coroutines-core.jar`
triggered IDEA debugger failure
([#2619](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2619)).
- Fixed memory leak of `ChildHandlerNode` with reusable continuations
([#2564](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2564)).
- Various documentation improvements
([#2555](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2555),
[#2589](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2589),
[#2592](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2592),
[#2583](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2583),
[#2437](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2437),
[#2616](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2616),
[#2633](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2633),
[#2560](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2560)).
##### Changelog relative to version 1.5.0-RC
- Fail-fast during `emitAll` called from cancelled `onCompletion`
operator
([#2700](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2700)).
- Flows returned by `stateIn`/`shareIn` keep strong reference to sharing
job
([#2557](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2557)).
- Rename internal `TimeSource` to `AbstractTimeSource` due to import
issues
([#2691](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2691)).
- Reverted the change that triggered IDEA coroutines debugger crash
([#2695](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2695),
reverted
[#2291](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2291)).
- `watchosX64` target support for Kotlin/Native
([#2524](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2524)).
- Various documentation fixes and improvements.
###
[`v1.4.3`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.4.3)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.2...1.4.3)
##### General changes
- Thread context is properly preserved and restored for coroutines
without `ThreadContextElement`
([#985](https://togithub.com/Kotlin/kotlinx.coroutines/issues/985))
- `ThreadContextElement`s are now restored in the opposite order from
update
([#2195](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2195))
- Improved performance of combine with 4 parameters, thanks to
[@alexvanyo](https://togithub.com/alexvanyo)
([#2419](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2419))
- Debug agent sanitizer leaves at least one frame with source location
([#1437](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1437))
- Update Reactor version in `kotlinx-coroutines-reactor` to `3.4.1`,
thanks to [@sokomishalov](https://togithub.com/sokomishalov)
([#2432](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2432))
- `callsInPlace` contract added to `ReceiveChannel.consume`
([#941](https://togithub.com/Kotlin/kotlinx.coroutines/issues/941))
- `CoroutineStart.UNDISPATCHED` promoted to stable API
([#1393](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1393))
- Kotlin updated to 1.4.30
- `kotlinx.coroutines` are now released directly to MavenCentral
- Reduced the size of `DispatchedCoroutine` by a field
- Internal class `TimeSource` renamed to `SchedulerTimeSource` to
prevent wildcard import issues
([#2537](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2537))
##### Bug fixes
- Fixed the problem that prevented implementation via delegation for
`Job` interface
([#2423](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2423))
- Fixed incorrect ProGuard rules that allowed shrinking volatile felds
([#1564](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1564))
- Fixed `await`/`asDeferred` for `MinimalStage` implementations in jdk8
module
([#2456](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2456))
- Fixed bug when `onUndeliveredElement` wasn't called for unlimited
channels
([#2435](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2435))
- Fixed a bug when `ListenableFuture.isCancelled` returned from
`asListenableFuture` could have thrown an exception, thanks to
[@vadimsemenov](https://togithub.com/vadimsemenov)
([#2421](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2421))
- Coroutine in `callbackFlow` and `produce` is properly cancelled when
the channel was closed separately
([#2506](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2506))
###
[`v1.4.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.4.2)
[Compare
Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.1...1.4.2)
- Fixed `StackOverflowError` in `Job.toString` when `Job` is observed in
its intermediate state
([#2371](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2371)).
- Improved liveness and latency of `Dispatchers.Default` and
`Dispatchers.IO` in low-loaded mode
([#2381](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2381)).
- Improved performance of consecutive `Channel.cancel` invocations
([#2384](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2384)).
- `SharingStarted` is now `fun` interface
([#2397](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2397)).
- Additional lint settings for `SharedFlow` to catch programmatic errors
early
([#2376](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2376)).
- Fixed bug when mutex and semaphore were not released during
cancellation
([#2390](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2390),
thanks to [@Tilps](https://togithub.com/Tilps) for reproducing).
- Some corner cases in cancellation propagation between coroutines and
listenable futures are repaired
([#1442](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1442),
thanks to [@vadimsemenov](https://togithub.com/vadimsemenov)).
- Fixed unconditional cast to `CoroutineStackFrame` in exception
recovery that triggered failures of instrumented code
([#2386](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2386)).
- Platform-specific dependencies are removed from
`kotlinx-coroutines-javafx`
([#2360](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2360)).
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
â™» **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config help](https://togithub.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] If you want to rebase/retry this PR, check
this box
---
This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/pachli/pachli-android).
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
---
gradle/libs.versions.toml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index c1a4242d7..686ed1b7f 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -39,7 +39,7 @@ auto-service-ksp = "1.2.0"
bouncycastle = "1.70"
conscrypt = "2.5.2"
coroutines = "1.8.1"
-coroutines-play-services = "1.4.1"
+coroutines-play-services = "1.8.1"
desugar_jdk_libs = "2.0.4"
diffx = "1.1.1"
emoji2 = "1.3.0"
@@ -53,7 +53,7 @@ org-json = "20240303"
junit = "4.13.2"
kotlin = "2.0.0"
kotlin-result = "1.1.20"
-ksp = "2.0.0-1.0.22"
+ksp = "2.0.0-1.0.23"
image-cropper = "4.3.2"
leakcanary = "2.14"
lint = "31.5.0" # = agp + 23.0.0 (= 8.5.0), see https://github.com/googlesamples/android-custom-lint-rules#lint-version