csicar / Ning

Network-Scanner for Android
222 stars 35 forks source link

Bump kotlinx-coroutines-core from 1.4.2 to 1.5.1 #82

Closed dependabot[bot] closed 3 years ago

dependabot[bot] commented 3 years ago

Bumps kotlinx-coroutines-core from 1.4.2 to 1.5.1.

Release notes

Sourced from kotlinx-coroutines-core's releases.

1.5.1

  • Atomic update, getAndUpdate, and updateAndGet operations of MutableStateFlow (#2720).
  • Executor.asCoroutineDispatcher implementation improvements (#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).
  • Reactive streams are updated to 1.0.3 (#2740).
  • CopyableThrowable is allowed to modify the exception message during stacktrace recovery (#1931).
  • CoroutineDispatcher.releaseInterceptedContinuation is now a final method (#2785).
  • Closing a Handler underlying Handler.asCoroutineDispatcher now causes the dispatched coroutines to be canceled on Dispatchers.IO ([#2778](https://github.com/Kotlin/kotlinx.coroutines/issues/2778)).
  • Kotlin is updated to 1.5.20.
  • Fixed a spurious ClassCastException in releaseInterceptedContinuation and IllegalStateException from tryReleaseClaimedContinuation (#2736, #2768).
  • Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators (#2749).
  • Fixed linear stack usage for CompletableFuture.asDeferred when the target future has a long chain of listeners (#2730).
  • Any exceptions from CoroutineDispatcher.isDispatchNeeded are now considered as fatal and are propagated to the caller (#2733).
  • Internal DebugProbesKt (used in the debugger implementation) are moved from debug to core module.

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, #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.
  • 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).
  • publish is no longer allowed to emit null values (#2646).
  • Misleading awaitSingleOr* functions on Publisher type are deprecated (#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, #1587).
  • ContextView support in kotlinx-coroutines-reactor (#2575).
  • All reactive builders no longer ignore inner cancellation exceptions preventing their completion (#2262, #2646).
  • MaybeSource.collect and Maybe.collect properly finish when they are completed without a value (#2617).
  • All exceptions are now consistently handled according to reactive specification, whether they are considered 'fatal' or not by reactive frameworks (#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).
  • Flow.runningFold operator (#2641).
  • CoroutinesTimeout rule for JUnit5 (#2197).
  • Internals of Job and AbstractCoroutine was reworked, resulting in smaller code size, less memory footprint, and better performance (#2513, #2512).
  • CancellationException from Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native (#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).
  • Fixed bug introduced in 1.4.3 when kotlinx-coroutines-core.jar triggered IDEA debugger failure (#2619).
  • Fixed memory leak of ChildHandlerNode with reusable continuations (#2564).
  • Various documentation improvements (#2555, #2589, #2592, #2583, #2437, #2616, #2633, #2560).

... (truncated)

Changelog

Sourced from kotlinx-coroutines-core's changelog.

Version 1.5.1

  • Atomic update, getAndUpdate, and updateAndGet operations of MutableStateFlow (#2720).
  • Executor.asCoroutineDispatcher implementation improvements (#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).
  • Reactive streams are updated to 1.0.3 (#2740).
  • CopyableThrowable is allowed to modify the exception message during stacktrace recovery (#1931).
  • CoroutineDispatcher.releaseInterceptedContinuation is now a final method (#2785).
  • Closing a Handler underlying Handler.asCoroutineDispatcher now causes the dispatched coroutines to be canceled on Dispatchers.IO ([#2778](https://github.com/Kotlin/kotlinx.coroutines/issues/2778)).
  • Kotlin is updated to 1.5.20.
  • Fixed a spurious ClassCastException in releaseInterceptedContinuation and IllegalStateException from tryReleaseClaimedContinuation (#2736, #2768).
  • Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators (#2749).
  • Fixed linear stack usage for CompletableFuture.asDeferred when the target future has a long chain of listeners (#2730).
  • Any exceptions from CoroutineDispatcher.isDispatchNeeded are now considered as fatal and are propagated to the caller (#2733).
  • Internal DebugProbesKt (used in the debugger implementation) are moved from debug to core module.

Version 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, #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.
  • 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).
  • publish is no longer allowed to emit null values (#2646).
  • Misleading awaitSingleOr* functions on Publisher type are deprecated (#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, #1587).
  • ContextView support in kotlinx-coroutines-reactor (#2575).
  • All reactive builders no longer ignore inner cancellation exceptions preventing their completion (#2262, #2646).
  • MaybeSource.collect and Maybe.collect properly finish when they are completed without a value (#2617).
  • All exceptions are now consistently handled according to reactive specification, whether they are considered 'fatal' or not by reactive frameworks (#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).
  • Flow.runningFold operator (#2641).
  • CoroutinesTimeout rule for JUnit5 (#2197).
  • Internals of Job and AbstractCoroutine was reworked, resulting in smaller code size, less memory footprint, and better performance (#2513, #2512).
  • CancellationException from Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native (#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).
  • Fixed bug introduced in 1.4.3 when kotlinx-coroutines-core.jar triggered IDEA debugger failure (#2619).

... (truncated)

Commits
  • b231887 Merge pull request #2812 from Kotlin/version-1.5.1
  • 2a4c00b Version 1.5.1
  • 69c3ce3 Update Dokka and Knit to their stable versions, remove bintray leftovers (#2811)
  • f5e8740 General cleanup (#2809)
  • c9ab4fd Update Kotlin to 1.5.20 (#2810)
  • bcbcd16 Upgrade to newest Dokka and Knit (#2805)
  • 074cc3f Update Lincheck to 2.14 (#2801)
  • 6cd1883 Cancel dispatched coroutine on Dispatchers.IO when the underlying Han… (#2784)
  • a327dfb Remove opt-in annotation from internal MainTestDispatcher
  • e81ce21 Introduce Task.await and Task.asDeferred with CancellationTokenSource (#2786)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
dependabot[bot] commented 3 years ago

Superseded by #83.