Skip to content
This repository has been archived by the owner on Nov 14, 2022. It is now read-only.

Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.4 #4

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link

@renovate renovate bot commented Dec 21, 2021

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.1.0 -> 1.6.4 age adoption passing confidence

⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the Dependency Dashboard for more information.


Release Notes

Kotlin/kotlinx.coroutines

v1.6.4

Compare Source

  • Added TestScope.backgroundScope for launching coroutines that perform work in the background and need to be cancelled at the end of the test (#​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).
  • Fixed the Publisher.await functions in kotlinx-coroutines-reactive not ensuring that the Subscriber methods are invoked serially (#​3360). Thank you, @​EgorKulbachka!
  • Fixed a memory leak in withTimeout on K/N with the new memory model (#​3351).
  • Added the guarantee that all Throwable implementations in the core library are serializable (#​3328).
  • Moved the documentation to https://kotlinlang.org/api/kotlinx.coroutines/ (#​3342).
  • Various documentation improvements.

v1.6.3

Compare Source

  • Updated atomicfu version to 0.17.3 (#​3321), fixing the projects using this library with JS IR failing to build (#​3305).

v1.6.2

Compare Source

  • Fixed a bug with ThreadLocalElement not being correctly updated when the most outer suspend function was called directly without kotlinx.coroutines (#​2930).
  • Fixed multiple data races: one that might have been affecting runBlocking event loop, and a benign data race in Mutex (#​3250, #​3251).
  • Obsolete TestCoroutineContext is removed, which fixes the kotlinx-coroutines-test JPMS package being split between kotlinx-coroutines-core and kotlinx-coroutines-test (#​3218).
  • Updated the ProGuard rules to further shrink the size of the resulting DEX file with coroutines (#​3111, #​3263). Thanks, @​agrieve!
  • Atomicfu is updated to 0.17.2, which includes a more efficient and robust JS IR transformer (#​3255).
  • Kotlin is updated to 1.6.21, Gradle version is updated to 7.4.2 (#​3281). Thanks, @​wojtek-kalicinski!
  • Various documentation improvements.

v1.6.1

Compare Source

  • Rollback of time-related functions dispatching on Dispatchers.Main.
    This behavior was introduced in 1.6.0 and then found inconvenient and erroneous (#​3106, #​3113).
  • Reworked the newly-introduced CopyableThreadContextElement to solve issues uncovered after the initial release (#​3227).
  • Fixed a bug with ThreadLocalElement not being properly updated in racy scenarios (#​2930).
  • Reverted eager loading of default CoroutineExceptionHandler that triggered ANR on some devices (#​3180).
  • New API to convert a CoroutineDispatcher to a Rx scheduler (#​968, #​548). Thanks @​recheej!
  • Fixed a memory leak with the very last element emitted from flow builder being retained in memory (#​3197).
  • Fixed a bug with limitedParallelism on K/N with new memory model throwing ClassCastException (#​3223).
  • CoroutineContext is added to the exception printed to the default CoroutineExceptionHandler to improve debuggability (#​3153).
  • Static memory consumption of Dispatchers.Default was significantly reduced (#​3137).
  • Updated slf4j version in kotlinx-coroutines-slf4j from 1.7.25 to 1.7.32.

v1.6.0

Compare Source

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
Dispatchers
  • Introduced CoroutineDispatcher.limitedParallelism that allows obtaining a view of the original dispatcher with limited parallelism (#​2919).
  • Dispatchers.IO.limitedParallelism usages ignore the bound on the parallelism level of Dispatchers.IO itself to avoid starvation (#​2943).
  • Introduced new Dispatchers.shutdown method for containerized environments (#​2558).
  • newSingleThreadContext and newFixedThreadPoolContext are promoted to delicate API (#​2919).
Breaking changes
  • When racing with cancellation, the future builder no longer reports unhandled exceptions into the global CoroutineExceptionHandler. Thanks @​vadimsemenov! (#​2774, #​2791).
  • Mutex.onLock is deprecated for removal (#​2794).
  • Dispatchers.Main is now used as the default source of time for delay and withTimeout when present(#​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).
  • 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 for the additional details.
Bug fixes and improvements
  • Kotlin is updated to 1.6.0.
  • Kotlin/Native new memory model is now supported in regular builds of coroutines conditionally depending on whether kotlin.native.binary.memoryModel is enabled (#​2914).
  • Introduced CopyableThreadContextElement for mutable context elements shared among multiple coroutines. Thanks @​yorickhenning! (#​2893).
  • transformWhile, awaitClose, ProducerScope, merge, runningFold, runingReduce, and scan are promoted to stable API (#​2971).
  • SharedFlow.subscriptionCount no longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription (#​2488, #​2863, #​2871).
  • Flow exception transparency mechanism is improved to be more exception-friendly (#​3017, #​2860).
  • Cancellation from flat* operators that leverage multiple coroutines is no longer propagated upstream (#​2964).
  • SharedFlow.collect now returns Nothing (#​2789, #​2502).
  • DisposableHandle is now fun interface, and corresponding inline extension is removed (#​2790).
  • FlowCollector is now fun interface, and corresponding inline extension is removed (#​3047).
  • Deprecation level of all previously deprecated signatures is raised (#​3024).
  • The version file is shipped with each JAR as a resource (#​2941).
  • Unhandled exceptions on K/N are passed to the standard library function processUnhandledException (#​2981).
  • A direct executor is used for Task callbacks in kotlinx-coroutines-play-services (#​2990).
  • Metadata of coroutines artifacts leverages Gradle platform to have all versions of dependencies aligned (#​2865).
  • Default CoroutineExceptionHandler is loaded eagerly and does not invoke ServiceLoader on its exception-handling path (#​2552).
  • Fixed the R8 rules for ServiceLoader optimization (#​2880).
  • Fixed BlockHound integration false-positives (#​2894, #​2866, #​2937).
  • Fixed the exception handler being invoked several times on Android, thanks to @​1zaman (#​3056).
  • SendChannel.trySendBlocking is now available on Kotlin/Native (#​3064).
  • The exception recovery mechanism now uses ClassValue when available (#​2997).
  • JNA is updated to 5.9.0 to support Apple M1 (#​3001).
  • Obsolete method on internal Delay interface is deprecated (#​2979).
  • Support of deprecated CommonPool is removed.
  • @ExperimentalTime is no longer needed for methods that use Duration (#​3041).
  • JDK 1.6 is no longer required for building the project (#​3043).
  • New version of Dokka is used, fixing the memory leak when building the coroutines and providing brand new reference visuals (https://kotlinlang.org/api/kotlinx.coroutines/) (#​3051, #​3054).
Changelog relative to version 1.6.0-RC3
  • Restored MPP binary compatibility on K/JS and K/N (#​3104).
  • Fixed Dispatchers.Main not being fully initialized on Android and Swing (#​3101).

v1.5.2

Compare Source

  • Kotlin is updated to 1.5.30.
  • New native targets for Apple Silicon are introduced.
  • Fixed a bug when onUndeliveredElement was incorrectly called on a properly received elements on JS (#​2826).
  • Fixed Dispatchers.Default on React Native, it now fully relies on setTimeout instead of stub process.nextTick. Thanks to @​Legion2 (#​2843).
  • Optimizations of Mutex implementation (#​2581).
  • Mutex implementation is made completely lock-free as stated (#​2590).
  • Various documentation and guides improvements. Thanks to @​MasoodFallahpoor and @​Pihanya.

v1.5.1

Compare Source

  • 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).
  • 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.

v1.5.0

Compare Source

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).
Changelog relative to version 1.5.0-RC
  • Fail-fast during emitAll called from cancelled onCompletion operator (#​2700).
  • Flows returned by stateIn/shareIn keep strong reference to sharing job (#​2557).
  • Rename internal TimeSource to AbstractTimeSource due to import issues (#​2691).
  • Reverted the change that triggered IDEA coroutines debugger crash (#​2695, reverted #​2291).
  • watchosX64 target support for Kotlin/Native (#​2524).
  • Various documentation fixes and improvements.

v1.4.3

Compare Source

General changes
  • Thread context is properly preserved and restored for coroutines without ThreadContextElement (#​985)
  • ThreadContextElements are now restored in the opposite order from update (#​2195)
  • Improved performance of combine with 4 parameters, thanks to @​alexvanyo (#​2419)
  • Debug agent sanitizer leaves at least one frame with source location (#​1437)
  • Update Reactor version in kotlinx-coroutines-reactor to 3.4.1, thanks to @​sokomishalov (#​2432)
  • callInPlace contract added to ReceiveChannel.consume (#​941)
  • CoroutineStart.UNDISPATCHED promoted to stable API (#​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)
Bug fixes
  • Fixed the problem that prevented implementation via delegation for Job interface (#​2423)
  • Fixed incorrect ProGuard rules that allowed shrinking volatile felds (#​1564)
  • Fixed await/asDeferred for MinimalStage implementations in jdk8 module (#​2456)
  • Fixed bug when onUndeliveredElement wasn't called for unlimited channels (#​2435)
  • Fixed a bug when ListenableFuture.isCancelled returned from asListenableFuture could have thrown an exception, thanks to @​vadimsemenov (#​2421)
  • Coroutine in callbackFlow and produce is properly cancelled when the channel was closed separately (#​2506)

v1.4.2

Compare Source

  • Fixed StackOverflowError in Job.toString when Job is observed in its intermediate state (#​2371).
  • Improved liveness and latency of Dispatchers.Default and Dispatchers.IO in low-loaded mode (#​2381).
  • Improved performance of consecutive Channel.cancel invocations (#​2384).
  • SharingStarted is now fun interface (#​2397).
  • Additional lint settings for SharedFlow to catch programmatic errors early (#​2376).
  • Fixed bug when mutex and semaphore were not released during cancellation (#​2390, thanks to @​Tilps for reproducing).
  • Some corner cases in cancellation propagation between coroutines and listenable futures are repaired (#​1442, thanks to @​vadimsemenov).
  • Fixed unconditional cast to CoroutineStackFrame in exception recovery that triggered failures of instrumented code (#​2386).
  • Platform-specific dependencies are removed from kotlinx-coroutines-javafx (#​2360).

v1.4.1

Compare Source

This is a patch release with an important fix to the SharedFlow implementation.

  • SharedFlow: Fix scenario with concurrent emitters and cancellation of subscriber (#​2359, thanks to @​vehovsky for the bug report).

v1.4.0

Compare Source

Improvements
  • StateFlow, SharedFlow and corresponding operators are promoted to stable API (#​2316).
  • Flow.debounce operator with timeout selector based on each individual element is added (#​1216, thanks to @​mkano9!).
  • CoroutineContext.job extension property is introduced (#​2159).
  • Flow.combine operator is reworked:
    • Complete fairness is maintained for single-threaded dispatchers.
    • Its performance is improved, depending on the use-case, by at least 50% (#​2296).
    • Quadratic complexity depending on the number of upstream flows is eliminated (#​2296).
    • crossinline and inline-heavy internals are removed, fixing sporadic SIGSEGV on Mediatek Android devices (#​1683, #​1743).
  • Flow.zip operator performance is improved by 40%.
  • Various API has been promoted to stable or its deprecation level has been raised (#​2316).
Bug fixes
  • Suspendable stateIn operator propagates exception to the caller when upstream fails to produce initial value (#​2329).
  • Fix SharedFlow with replay for subscribers working at different speed (#​2325).
  • Do not fail debug agent installation when security manager does not provide access to system properties (#​2311).
  • Cancelled lazy coroutines are properly cleaned up from debug agent output (#​2294).
  • BlockHound false-positives are correctly filtered out (#​2302, #​2190, #​2303).
  • Potential crash during a race between cancellation and upstream in Observable.asFlow is fixed (#​2104, #​2299, thanks to @​LouisCAD and @​drinkthestars).

v1.3.9

Compare Source

  • Support of CoroutineContext in Flow.asPublisher and similar reactive builders (#​2155).
  • Kotlin updated to 1.4.0.
  • Transition to new HMPP publication scheme for multiplatform usages:
    • Artifacts kotlinx-coroutines-core-common and kotlinx-coroutines-core-native are removed.
    • For multiplatform usages, it's enough to depend directly on kotlinx-coroutines-core in commonMain source-set.
    • The same artifact coordinates can be used to depend on platform-specific artifact in platform-specific source-set.

v1.3.8

Compare Source

New experimental features
  • Added Flow.transformWhile operator (#​2065).
  • Replaced scanReduce with runningReduce to be consistent with the Kotlin standard library (#​2139).
Bug fixes and improvements
  • Improve user experience for the upcoming coroutines debugger (#​2093, #​2118, #​2131).
  • Debugger no longer retains strong references to the running coroutines (#​2129).
  • Fixed race in Flow.asPublisher (#​2109).
  • Fixed ensureActive to work in the empty context case to fix IllegalStateException when using flow from suspend fun main (#​2044).
  • Fixed a problem with AbortFlowException in the Flow.first operator to avoid erroneous NoSuchElementException (#​2051).
  • Fixed JVM dependency on Android annotations (#​2075).
  • Removed keep rules mentioning kotlinx.coroutines.android from core module (#​2061 by @​mkj-gram).
  • Corrected some docs and examples (#​2062, #​2071, #​2076, #​2107, #​2098, #​2127, #​2078, #​2135).
  • Improved the docs and guide on flow cancellation (#​2043).
  • Updated Gradle version to 6.3 (it only affects multiplatform artifacts in this release).

v1.3.7

Compare Source

  • Fixed problem that triggered Android Lint failure (#​2004).
  • New Flow.cancellable() operator for cooperative cancellation (#​2026).
  • Emissions from flow builder now check cancellation status and are properly cancellable (#​2026).
  • New currentCoroutineContext function to use unambiguously in the contexts with CoroutineScope in receiver position (#​2026).
  • EXACTLY_ONCE contract support in coroutine builders.
  • Various documentation improvements.

v1.3.6

Compare Source

Flow
  • StateFlow, new primitive for state handling (#​1973, #​1816, #​395). The StateFlow is designed to eventually replace ConflatedBroadcastChannel for state publication scenarios. Please, try it and share your feedback. Note, that Flow-based primitives to publish events will be added later. For events you should continue to either use BroadcastChannel(1), if you put events into the StateFlow, protect them from double-processing with flags.
  • Flow.onEmpty operator is introduced (#​1890).
  • Behavioural change in Flow.onCompletion, it is aligned with invokeOnCompletion now and passes CancellationException to its cause parameter (#​1693).
  • A lot of Flow operators have left its experimental status and are promoted to stable API.
Other
  • runInterruptible primitive to tie cancellation with thread interruption for blocking calls. Contributed by @​jxdabc (#​1947).
  • Integration module with RxJava3 is introduced. Contributed by @​ZacSweers (#​1883)
  • Integration with BlockHound in kotlinx-coroutines-debug module (#​1821, #​1060).
  • Memory leak in ArrayBroadcastChannel is fixed (#​1885).
  • Behavioural change in suspendCancellableCoroutine, cancellation is established before invoking passed block argument (#​1671).
  • Debug agent internals are moved into kotlinx-coroutines-core for better integration with IDEA. It should not affect library users and all the redundant code should be properly eliminated with R8.
  • ClassCastException with reusable continuations bug is fixed (#​1966).
  • More precise scheduler detection for Executor.asCoroutineDispatcher (#​1992).
  • Kotlin updated to 1.3.71.

v1.3.5

Compare Source

  • firstOrNull operator. Contributed by @​bradynpoulsen.
  • java.time adapters for Flow operators. Contributed by @​fvasco.
  • kotlin.time.Duration support (#​1402). Contributed by @​fvasco.
  • Memory leak with a mix of reusable and non-reusable continuations is fixed (#​1855).
  • DebugProbes are ready for production installation: its performance is increased, the flag to disable creation stacktraces to reduce the footprint is introduced (#​1379, #​1372).
  • Stacktrace recovery workaround for Android 6.0 and earlier bug (#​1866).
  • New integration module: kotlinx-coroutines-jdk9 with adapters for java.util.concurrent.Flow.
  • BroadcastChannel.close properly starts lazy coroutine (#​1713).
  • kotlinx-coroutines-bom is published without Gradle metadata.
  • Make calls to service loader in reactor integrations optimizable by R8 (#​1817).

v1.3.4

Compare Source

Flow
  • Detect missing awaitClose calls in callbackFlow to make it less error-prone when used with callbacks (#​1762, #​1770). This change makes callbackFlow different from channelFlow.
  • ReceiveChannel.asFlow extension is introduced (#​1490).
  • Enforce exception transparency invariant in flow builder (#​1657).
  • Proper Dispatcher support in Flow reactive integrations (#​1765).
  • Batch Subscription.request calls in Flow reactive integration (#​766).
  • ObservableValue.asFlow added to JavaFx integration module (#​1695).
  • ObservableSource.asFlow added to RxJava2 integration module (#​1768).
Other changes
  • kotlinx-coroutines-core is optimized for R8, making it much smaller for Android usages (75 KB for 1.3.4 release).
  • Performance of Dispatchers.Default is improved (#​1704, #​1706).
  • Kotlin is updated to 1.3.70.
  • CoroutineDispatcher and ExecutorCoroutineDispatcher experimental coroutine context keys are introduced (#​1805).
  • Performance of various Channel operations is improved (#​1565).

v1.3.3

Flow
  • Flow.take performance is significantly improved (#​1538).
  • Flow.merge operator (#​1491).
  • Reactive Flow adapters are promoted to stable API (#​1549).
  • Reusable cancellable continuations were introduced that improved the performance of various flow operators and iteration over channels (#​1534).
  • Fixed interaction of multiple flows with take operator (#​1610).
  • Throw NoSuchElementException instead of UnsupportedOperationException for empty Flow in reduce operator (#​1659).
  • onCompletion now rethrows downstream exceptions on emit attempt (#​1654).
  • Allow non-emitting withContext from flow builder (#​1616).
Debugging
  • DebugProbes.dumpCoroutines is optimized to be able to print the 6-digit number of coroutines (#​1535).
  • Properly capture unstarted lazy coroutines in debugger (#​1544).
  • Capture coroutines launched from within a test constructor with CoroutinesTimeout test rule (#​1542).
  • Stacktraces of Job-related coroutine machinery are shortened and prettified (#​1574).
  • Stacktrace recovery unification that should provide a consistent experience recover of stacktrace (#​1597).
  • Stacktrace recovery for withTimeout is supported (#​1625).
  • Do not recover exception with a single String parameter constructor that is not a message (#​1631).
Other features
  • Dispatchers.Default and Dispatchers.IO rework: CPU consumption is significantly lower, predictable idle threads termination (#​840, #​1046, #​1286).
  • Avoid ServiceLoader for loading Dispatchers.Main (#​1572, #​1557, #​878, #​1606).
  • Consistently handle undeliverable exceptions in RxJava and Reactor integrations (#​252, #​1614).
  • yield support in immediate dispatchers (#​1474).
  • CompletableDeferred.completeWith(result: Result<T>) is introduced.
  • Added support for tvOS and watchOS-based Native targets (#​1596).
Bug fixes and improvements
  • Kotlin version is updated to 1.3.61.
  • CoroutineDispatcher.isDispatchNeeded is promoted to stable API (#​1014).
  • Livelock and stackoverflows in mutual select expressions are fixed (#​1411, #​504).
  • Properly handle null values in ListenableFuture integration (#​1510).
  • Making ReceiveChannel.cancel linearizability-friendly.
  • Linearizability of Channel.close in a complex contended cases (#​1419).
  • ArrayChannel.isBufferEmpty atomicity is fixed (#​1526).
  • Various documentation improvements.
  • Reduced bytecode size of kotlinx-coroutines-core, reduced size of minified dex when using basic functionality of kotlinx-coroutines.

v1.3.2

Compare Source

This is a maintenance release that does not include any new features or bug fixes.

  • Reactive integrations for Flow are promoted to stable API.
  • Obsolete reactive API is deprecated.
  • Deprecation level for API deprecated in 1.3.0 is increased.
  • Various documentation improvements.

v1.3.1

Compare Source

This is a minor update with various fixes:

  • Flow: Fix recursion in combineTransform<T1, T2, R> (#​1466).
  • Fixed race in the Semaphore (#​1477).
  • Repaired some of ListenableFuture.kt's cancellation corner cases (#​1441).
  • Consistently unwrap exception in slow path of CompletionStage.asDeferred (#​1479).
  • Various fixes in documentation (#​1496, #​1476, #​1470, #​1468).
  • Various cleanups and additions in tests.

Note: Kotlin/Native artifacts are now published with Gradle metadata format version 1.0, so you will need
Gradle version 5.3 or later to use this version of kotlinx.coroutines in your Kotlin/Native project.

v1.3.0

Compare Source

Flow

This version is the first stable release with Flow API.

All Flow API not marked with @FlowPreview or @ExperimentalCoroutinesApi annotations are stable and here to stay.
Flow declarations marked with @ExperimentalCoroutinesApi have the same guarantees as regular experimental API.
Please note that API marked with @FlowPreview have weak guarantees on source, binary and semantic compatibility.

Changelog
  • A new guide section about Flow.
  • CoroutineDispatcher.asExecutor extension (#​1450).
  • Fixed bug when select statement could report the same exception twice (#​1433).
  • Fixed context preservation in flatMapMerge in a case when collected values were immediately emitted to another flow (#​1440).
  • Reactive Flow integrations enclosing files are renamed for better interoperability with Java.
  • Default buffer size in all Flow operators is increased to 64.
  • Kotlin updated to 1.3.50.

v1.2.2

Compare Source

  • Kotlin updated to 1.3.40.

v1.2.1

Compare Source

Major:

  • Infrastructure for testing coroutine-specific code in kotlinx-coroutines-test: runBlockingTest, TestCoroutineScope and TestCoroutineDispatcher, contributed by Sean McQuillan (@​objcode). Obsolete TestCoroutineContext from kotlinx-coroutines-core is deprecated.
  • Job.asCompletableFuture extension in jdk8 module (#​1113).

Flow improvements:

  • flowViaChannel rework: block parameter is no longer suspending, but provides CoroutineScope receiver and allows conflated channel (#​1081, #​1112).
  • New operators: switchMap, sample, debounce (#​1107).
  • consumerEach is deprecated on Publisher, ObservableSource and MaybeSource, collect extension is introduced instead (#​1080).

Other:

  • Race in Job.join and concurrent cancellation is fixed (#​1123).
  • Stacktrace recovery machinery improved: cycle detection works through recovered exceptions, cancellation exceptions are recovered on cancellation fast-path.
  • Atomicfu-related bug fixes: publish transformed artifacts, do not propagate transitive atomicfu dependency (#​1064, #​1116).
  • Publication to NPM fixed (#​1118).
  • Misplaced resources are removed from the final jar (#​1131).

v1.2.0

Compare Source

  • Kotlin updated to 1.3.30.
  • New API: CancellableContinuation.resume with onCancelling lambda (#​1044) to consistently handle closeable resources.
  • Play services task version updated to 16.0.1.
  • ReceiveChannel.isEmpty is no longer deprecated

A lot of Flow improvements:

  • Purity property is renamed to context preservation and became more restrictive.
  • zip and combineLatest operators.
  • Integration with RxJava2
  • flatMap, merge and concatenate are replaced with flattenConcat, flattenMerge, flatMapConcat and flatMapMerge.
  • Various documentation improvements and minor bug fixes.

Note that Flow is not leaving its preview status.

v1.1.1

  • Maintenance release, no changes in the codebase
  • Kotlin is updated to 1.3.20
  • Gradle is updated to 4.10
  • Native module is published with Gradle metadata v0.4

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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.x branch from 6725b5d to 281fd40 Compare December 22, 2021 16:50
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.5.2 Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.0 Dec 22, 2021
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.x branch from 281fd40 to 34167c1 Compare April 24, 2022 23:55
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.0 Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.1 Apr 24, 2022
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.x branch from 34167c1 to aa63580 Compare June 18, 2022 21:58
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.1 Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.2 Jun 18, 2022
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.x branch from aa63580 to 255192f Compare June 23, 2022 21:50
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.2 Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.3 Jun 23, 2022
@renovate renovate bot force-pushed the renovate/org.jetbrains.kotlinx-kotlinx-coroutines-core-1.x branch from 255192f to 064e8a1 Compare September 25, 2022 20:13
@renovate renovate bot changed the title Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.3 Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.6.4 Sep 25, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants