You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGES.md
+32
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,37 @@
1
1
# Change log for kotlinx.coroutines
2
2
3
+
## Version 1.5.0-RC
4
+
5
+
### Channels API
6
+
7
+
* Major channels API rework (#330, #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`.
8
+
* 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://github.com/Kotlin/kotlinx.coroutines/issues/974#issuecomment-806569582).
9
+
*`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.
10
+
*`callbackFlow` and `channelFlow` are promoted to stable API.
11
+
12
+
### Reactive integrations
13
+
14
+
* 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).
15
+
*`publish` is no longer allowed to emit `null` values (#2646).
16
+
* Misleading `awaitSingleOr*` functions on `Publisher` type are deprecated (#2591).
17
+
*`MaybeSource.await` is deprecated in the favor of `awaitSingle`, additional lint functions for `Mono` are added in order to prevent ambiguous `Publisher` usages (#2628, #1587).
18
+
*`ContextView` support in `kotlinx-coroutines-reactor` (#2575).
19
+
* All reactive builders no longer ignore inner cancellation exceptions preventing their completion (#2262, #2646).
20
+
*`MaybeSource.collect` and `Maybe.collect` properly finish when they are completed without a value (#2617).
21
+
* All exceptions are now consistently handled according to reactive specification, whether they are considered 'fatal' or not by reactive frameworks (#2646).
22
+
23
+
### Other improvements
24
+
25
+
*`Flow.last` and `Flow.lastOrNull` operators (#2246).
26
+
*`Flow.runningFold` operator (#2641).
27
+
*`CoroutinesTimeout` rule for JUnit5 (#2197).
28
+
* Internals of `Job` and `AbstractCoroutine` was reworked, resulting in smaller code size, less memory footprint, and better performance (#2513, #2512).
29
+
*`CancellationException` from Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native (#2638).
30
+
* Introduced new `DelicateCoroutineApi` 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).
31
+
* Fixed bug introduced in `1.4.3` when `kotlinx-coroutines-core.jar` triggered IDEA debugger failure (#2619).
32
+
* Fixed memory leak of `ChildHandlerNode` with reusable continuations (#2564).
(follow the link to get the dependency declaration snippet) and as [`kotlinx-coroutines-core`](https://www.npmjs.com/package/kotlinx-coroutines-core) NPM package.
0 commit comments