Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)
### [`v1.9.0`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-190)
[Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.8.1...1.9.0)
##### Features
- Wasm/WASI target support ([#4064](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4064)). Thanks, [@igoriakovlev](https://redirect.github.com/igoriakovlev)!
- `limitedParallelism` now optionally accepts the name of the dispatcher view for easier debugging ([#4023](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4023)).
- No longer initialize `Dispatchers.IO` on the JVM when other standard dispatchers are accessed ([#4166](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4166)). Thanks, [@metalhead8816](https://redirect.github.com/metalhead8816)!
- Introduced the `Flow.chunked(size: Int): Flow>` operator that groups emitted values into groups of the given size ([#1290](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1290)).
- Closeable dispatchers are instances of `AutoCloseable` now ([#4123](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4123)).
##### Fixes
- Calling `hasNext` on a `Channel`'s iterator is idempotent ([#4065](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4065)). Thanks, [@gitpaxultek](https://redirect.github.com/gitpaxultek)!
- `CoroutineScope()` created without an explicit dispatcher uses `Dispatchers.Default` on Native ([#4074](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4074)). Thanks, [@whyoleg](https://redirect.github.com/whyoleg)!
- Fixed a bug that prevented non-Android `Dispatchers.Main` from initializing when the Firebase dependency is used ([#3914](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3914)).
- Ensured a more intuitive ordering of tasks in `runBlocking` ([#4134](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4134)).
- Forbid casting a `Mutex` to `Semaphore` ([#4176](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4176)).
- Worked around a stack overflow that may occur when calling `asDeferred` on a `Future` many times ([#4156](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4156)).
##### Deprecations and promotions
- Advanced the deprecation levels for `BroadcastChannel`-based API ([#4197](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4197)).
- Advanced the deprecation levels for the old `kotlinx-coroutines-test` API ([#4198](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4198)).
- Deprecated `Job.cancelFutureOnCompletion` ([#4173](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4173)).
- Promoted `CoroutineDispatcher.limitedParallelism` to stable ([#3864](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3864)).
- Promoted `CoroutineStart.ATOMIC` from `ExperimentalCoroutinesApi` to `DelicateCoroutinesApi` ([#4169](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4169)).
- Promoted `CancellableContinuation.resume` with an `onCancellation` lambda to stable, providing extra arguments to the lambda ([#4088](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4088)).
- Marked the classes and interfaces that are not supposed to be inherited from with the new `InternalForInheritanceCoroutinesApi` opt-in ([#3770](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3770)).
- Marked the classes and interfaces inheriting from which is not stable with the new `ExperimentalForInheritanceCoroutinesApi` opt-in ([#3770](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3770)).
##### Other
- Kotlin was updated to 2.0 ([#4137](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4137)).
- Reworked the documentation for `CoroutineStart` and `Channel`-based API ([#4147](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4147), [#4148](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4148), [#4167](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4167)). Thanks, [@globsterg](https://redirect.github.com/globsterg)!
- Simplified the internal implementation of `Job` ([#4053](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4053)).
- Small tweaks, fixes, and documentation improvements.
### [`v1.8.1`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-181)
[Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.8.0...1.8.1)
- Remove the `@ExperimentalTime` annotation from usages of `TimeSource` ([#4046](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4046)). Thanks, [@hfhbd](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3820)).
- No longer use `kotlin.random.Random` as part of `Dispatchers.Default` and `Dispatchers.IO` initialization ([#4051](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4051)).
- `Flow.timeout` throws the exception with which the channel was closed ([#4071](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4071)).
- Small documentation fixes.
### [`v1.8.0`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-180)
[Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.7.3...1.8.0)
- Implement the library for the Web Assembly (Wasm) for JavaScript ([#3713](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3713)). Thanks [@igoriakovlev](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3545), [#3963](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4035), [#4038](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4038))
- `kotlinx-coroutines-debug` is published with the correct Java 9 module info ([#3944](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3944)).
- `kotlinx-coroutines-debug` no longer requires manually setting `DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the default ([#3783](https://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3800)).
- `delay(Duration)` rounds nanoseconds up to whole milliseconds and not down ([#3920](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3920)). Thanks [@kevincianfarini](https://redirect.github.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://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3954)).
- Added a workaround for miscompilation of `withLock` on JS ([#3881](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3881)). Thanks [@CLOVIS-AI](https://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4035), [#4038](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4038))
- Small documentation fixes.
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 is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
1.7.3
->1.9.0
Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)
### [`v1.9.0`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-190) [Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.8.1...1.9.0) ##### Features - Wasm/WASI target support ([#4064](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4064)). Thanks, [@igoriakovlev](https://redirect.github.com/igoriakovlev)! - `limitedParallelism` now optionally accepts the name of the dispatcher view for easier debugging ([#4023](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4023)). - No longer initialize `Dispatchers.IO` on the JVM when other standard dispatchers are accessed ([#4166](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4166)). Thanks, [@metalhead8816](https://redirect.github.com/metalhead8816)! - Introduced the `Flow>` operator that groups emitted values into groups of the given size ([#1290](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/1290)). - Closeable dispatchers are instances of `AutoCloseable` now ([#4123](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4123)). ##### Fixes - Calling `hasNext` on a `Channel`'s iterator is idempotent ([#4065](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4065)). Thanks, [@gitpaxultek](https://redirect.github.com/gitpaxultek)! - `CoroutineScope()` created without an explicit dispatcher uses `Dispatchers.Default` on Native ([#4074](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4074)). Thanks, [@whyoleg](https://redirect.github.com/whyoleg)! - Fixed a bug that prevented non-Android `Dispatchers.Main` from initializing when the Firebase dependency is used ([#3914](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3914)). - Ensured a more intuitive ordering of tasks in `runBlocking` ([#4134](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4134)). - Forbid casting a `Mutex` to `Semaphore` ([#4176](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4176)). - Worked around a stack overflow that may occur when calling `asDeferred` on a `Future` many times ([#4156](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4156)). ##### Deprecations and promotions - Advanced the deprecation levels for `BroadcastChannel`-based API ([#4197](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4197)). - Advanced the deprecation levels for the old `kotlinx-coroutines-test` API ([#4198](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4198)). - Deprecated `Job.cancelFutureOnCompletion` ([#4173](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4173)). - Promoted `CoroutineDispatcher.limitedParallelism` to stable ([#3864](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3864)). - Promoted `CoroutineStart.ATOMIC` from `ExperimentalCoroutinesApi` to `DelicateCoroutinesApi` ([#4169](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4169)). - Promoted `CancellableContinuation.resume` with an `onCancellation` lambda to stable, providing extra arguments to the lambda ([#4088](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4088)). - Marked the classes and interfaces that are not supposed to be inherited from with the new `InternalForInheritanceCoroutinesApi` opt-in ([#3770](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3770)). - Marked the classes and interfaces inheriting from which is not stable with the new `ExperimentalForInheritanceCoroutinesApi` opt-in ([#3770](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3770)). ##### Other - Kotlin was updated to 2.0 ([#4137](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4137)). - Reworked the documentation for `CoroutineStart` and `Channel`-based API ([#4147](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4147), [#4148](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4148), [#4167](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4167)). Thanks, [@globsterg](https://redirect.github.com/globsterg)! - Simplified the internal implementation of `Job` ([#4053](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4053)). - Small tweaks, fixes, and documentation improvements. ### [`v1.8.1`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-181) [Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.8.0...1.8.1) - Remove the `@ExperimentalTime` annotation from usages of `TimeSource` ([#4046](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4046)). Thanks, [@hfhbd](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3820)). - No longer use `kotlin.random.Random` as part of `Dispatchers.Default` and `Dispatchers.IO` initialization ([#4051](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4051)). - `Flow.timeout` throws the exception with which the channel was closed ([#4071](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4071)). - Small documentation fixes. ### [`v1.8.0`](https://redirect.github.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-180) [Compare Source](https://redirect.github.com/Kotlin/kotlinx.coroutines/compare/1.7.3...1.8.0) - Implement the library for the Web Assembly (Wasm) for JavaScript ([#3713](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3713)). Thanks [@igoriakovlev](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3545), [#3963](https://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4035), [#4038](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4038)) - `kotlinx-coroutines-debug` is published with the correct Java 9 module info ([#3944](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3944)). - `kotlinx-coroutines-debug` no longer requires manually setting `DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the default ([#3783](https://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3800)). - `delay(Duration)` rounds nanoseconds up to whole milliseconds and not down ([#3920](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3920)). Thanks [@kevincianfarini](https://redirect.github.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://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3954)). - Added a workaround for miscompilation of `withLock` on JS ([#3881](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/3881)). Thanks [@CLOVIS-AI](https://redirect.github.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://redirect.github.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://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4035), [#4038](https://redirect.github.com/Kotlin/kotlinx.coroutines/issues/4038)) - Small documentation fixes.
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 is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.