Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.
Release Notes
Kotlin/kotlinx.serialization
### [`v1.5.1`](https://togithub.com/Kotlin/kotlinx.serialization/blob/HEAD/CHANGELOG.md#151--2023-05-11)
\==================
This release contains an important Native targets overhaul, as well as numerous enhancements and bugfixes.
Kotlin 1.8.21 is used by default.
##### New set of Native targets
The official [Kotlin target support policy](https://kotlinlang.org/docs/native-target-support.html) has recently been published
describing new target policy: each target belongs to a certain *tier*, and different tiers have different stability guarantees.
The official recommendation for library authors is to support targets up to Tier 3,
and kotlinx.serialization now follows it.
It means that in this release, there are a lot of new targets added from this tier,
such as `androidNativeX86` or `watchosDeviceArm64`.
Note that since they belong to Tier 3, they're not auto-tested on CI.
kotlinx.serialization also ships some deprecated Kotlin/Native targets that do not belong to any tier (e.g. `iosArm32`, `mingwX86`).
We'll continue to release them, but we do not provide support for them, nor do we plan to add new targets from the deprecated list.
##### Improvements in Json elements
There are two new function sets that should make creating raw Json elements easier.
[First one](https://togithub.com/Kotlin/kotlinx.serialization/pull/2160) contains overloads for `JsonPrimitive` constructor-like function
that accept unsigned types: `JsonPrimitive(1u)`.
[Second one](https://togithub.com/Kotlin/kotlinx.serialization/pull/2156) adds new `addAll` functions to `JsonArrayBuilder` to be used with collections
of numbers, booleans or strings: `buildJsonArray { addAll(listOf(1, 2, 3)) }`
Both were contributed to us by [aSemy](https://togithub.com/aSemy).
##### Other enhancements
- **Potential source-breaking change**: Rename json-okio `target` variables to `sink` ([#2226](https://togithub.com/Kotlin/kotlinx.serialization/issues/2226))
- Function to retrieve KSerializer by KClass and type arguments serializers ([#2291](https://togithub.com/Kotlin/kotlinx.serialization/issues/2291))
- Added FormatLanguage annotation to Json methods ([#2234](https://togithub.com/Kotlin/kotlinx.serialization/issues/2234))
- Properties Format: Support sealed/polymorphic classes as class properties ([#2255](https://togithub.com/Kotlin/kotlinx.serialization/issues/2255))
##### Bugfixes
- KeyValueSerializer: Fix missing call to endStructure() ([#2272](https://togithub.com/Kotlin/kotlinx.serialization/issues/2272))
- ObjectSerializer: Respect sequential decoding ([#2273](https://togithub.com/Kotlin/kotlinx.serialization/issues/2273))
- Fix value class encoding in various corner cases ([#2242](https://togithub.com/Kotlin/kotlinx.serialization/issues/2242))
- Fix incorrect json decoding iterator's .hasNext() behavior on array-wrapped inputs ([#2268](https://togithub.com/Kotlin/kotlinx.serialization/issues/2268))
- Fix memory leak caused by invalid KTypeWrapper's equals method ([#2274](https://togithub.com/Kotlin/kotlinx.serialization/issues/2274))
- Fixed NoSuchMethodError when parsing a JSON stream on Java 8 ([#2219](https://togithub.com/Kotlin/kotlinx.serialization/issues/2219))
- Fix MissingFieldException duplication ([#2213](https://togithub.com/Kotlin/kotlinx.serialization/issues/2213))
charleskorn/kaml
### [`v0.54.0`](https://togithub.com/charleskorn/kaml/releases/tag/0.54.0)
[Compare Source](https://togithub.com/charleskorn/kaml/compare/0.53.0...0.54.0)
- **New**: add support for naming strategies, similar to the feature in kotlinx.serialization's JSON support ([#400](https://togithub.com/charleskorn/kaml/issues/400) - thanks to [@russellbanks](https://togithub.com/russellbanks) for the PR)
This makes it easy to use different field naming schemes such as snake_case, kebab-case, PascalCase, and camelCase without needing to modify the corresponding Kotlin property names or annotate properties with `@SerialName`.
- **Updated**: build with Kotlin 1.8.21
- **Changed**: remove unnecessary stdlib dependency ([#421](https://togithub.com/charleskorn/kaml/issues/421) - thanks to [@russellbanks](https://togithub.com/russellbanks) for the PR)
Kotlin/kotlinx.coroutines
### [`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)
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 if that's undesired.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.14.19
->0.14.21
1.5.0
->1.5.1
0.53.0
->0.54.0
1.6.4
->1.7.1
1.2.5
->1.2.7
⚠ Dependency Lookup Warnings ⚠
Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.
Release Notes
Kotlin/kotlinx.serialization
### [`v1.5.1`](https://togithub.com/Kotlin/kotlinx.serialization/blob/HEAD/CHANGELOG.md#151--2023-05-11) \================== This release contains an important Native targets overhaul, as well as numerous enhancements and bugfixes. Kotlin 1.8.21 is used by default. ##### New set of Native targets The official [Kotlin target support policy](https://kotlinlang.org/docs/native-target-support.html) has recently been published describing new target policy: each target belongs to a certain *tier*, and different tiers have different stability guarantees. The official recommendation for library authors is to support targets up to Tier 3, and kotlinx.serialization now follows it. It means that in this release, there are a lot of new targets added from this tier, such as `androidNativeX86` or `watchosDeviceArm64`. Note that since they belong to Tier 3, they're not auto-tested on CI. kotlinx.serialization also ships some deprecated Kotlin/Native targets that do not belong to any tier (e.g. `iosArm32`, `mingwX86`). We'll continue to release them, but we do not provide support for them, nor do we plan to add new targets from the deprecated list. ##### Improvements in Json elements There are two new function sets that should make creating raw Json elements easier. [First one](https://togithub.com/Kotlin/kotlinx.serialization/pull/2160) contains overloads for `JsonPrimitive` constructor-like function that accept unsigned types: `JsonPrimitive(1u)`. [Second one](https://togithub.com/Kotlin/kotlinx.serialization/pull/2156) adds new `addAll` functions to `JsonArrayBuilder` to be used with collections of numbers, booleans or strings: `buildJsonArray { addAll(listOf(1, 2, 3)) }` Both were contributed to us by [aSemy](https://togithub.com/aSemy). ##### Other enhancements - **Potential source-breaking change**: Rename json-okio `target` variables to `sink` ([#2226](https://togithub.com/Kotlin/kotlinx.serialization/issues/2226)) - Function to retrieve KSerializer by KClass and type arguments serializers ([#2291](https://togithub.com/Kotlin/kotlinx.serialization/issues/2291)) - Added FormatLanguage annotation to Json methods ([#2234](https://togithub.com/Kotlin/kotlinx.serialization/issues/2234)) - Properties Format: Support sealed/polymorphic classes as class properties ([#2255](https://togithub.com/Kotlin/kotlinx.serialization/issues/2255)) ##### Bugfixes - KeyValueSerializer: Fix missing call to endStructure() ([#2272](https://togithub.com/Kotlin/kotlinx.serialization/issues/2272)) - ObjectSerializer: Respect sequential decoding ([#2273](https://togithub.com/Kotlin/kotlinx.serialization/issues/2273)) - Fix value class encoding in various corner cases ([#2242](https://togithub.com/Kotlin/kotlinx.serialization/issues/2242)) - Fix incorrect json decoding iterator's .hasNext() behavior on array-wrapped inputs ([#2268](https://togithub.com/Kotlin/kotlinx.serialization/issues/2268)) - Fix memory leak caused by invalid KTypeWrapper's equals method ([#2274](https://togithub.com/Kotlin/kotlinx.serialization/issues/2274)) - Fixed NoSuchMethodError when parsing a JSON stream on Java 8 ([#2219](https://togithub.com/Kotlin/kotlinx.serialization/issues/2219)) - Fix MissingFieldException duplication ([#2213](https://togithub.com/Kotlin/kotlinx.serialization/issues/2213))charleskorn/kaml
### [`v0.54.0`](https://togithub.com/charleskorn/kaml/releases/tag/0.54.0) [Compare Source](https://togithub.com/charleskorn/kaml/compare/0.53.0...0.54.0) - **New**: add support for naming strategies, similar to the feature in kotlinx.serialization's JSON support ([#400](https://togithub.com/charleskorn/kaml/issues/400) - thanks to [@russellbanks](https://togithub.com/russellbanks) for the PR) This makes it easy to use different field naming schemes such as snake_case, kebab-case, PascalCase, and camelCase without needing to modify the corresponding Kotlin property names or annotate properties with `@SerialName`. - **Updated**: build with Kotlin 1.8.21 - **Changed**: remove unnecessary stdlib dependency ([#421](https://togithub.com/charleskorn/kaml/issues/421) - thanks to [@russellbanks](https://togithub.com/russellbanks) for the PR)Kotlin/kotlinx.coroutines
### [`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)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 if that's undesired.
This PR has been generated by Mend Renovate. View repository job log here.