Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.9.0 #519

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

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 2, 2024

This PR contains the following updates:

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

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)

v1.9.0

Compare Source

Features
  • Wasm/WASI target support (#​4064). Thanks, @​igoriakovlev!
  • limitedParallelism now optionally accepts the name of the dispatcher view for easier debugging (#​4023).
  • No longer initialize Dispatchers.IO on the JVM when other standard dispatchers are accessed (#​4166). Thanks, @​metalhead8816!
  • Introduced the Flow<T>.chunked(size: Int): Flow<List<T>> operator that groups emitted values into groups of the given size (#​1290).
  • Closeable dispatchers are instances of AutoCloseable now (#​4123).
Fixes
  • Calling hasNext on a Channel's iterator is idempotent (#​4065). Thanks, @​gitpaxultek!
  • CoroutineScope() created without an explicit dispatcher uses Dispatchers.Default on Native (#​4074). Thanks, @​whyoleg!
  • Fixed a bug that prevented non-Android Dispatchers.Main from initializing when the Firebase dependency is used (#​3914).
  • Ensured a more intuitive ordering of tasks in runBlocking (#​4134).
  • Forbid casting a Mutex to Semaphore (#​4176).
  • Worked around a stack overflow that may occur when calling asDeferred on a Future many times (#​4156).
Deprecations and promotions
  • Advanced the deprecation levels for BroadcastChannel-based API (#​4197).
  • Advanced the deprecation levels for the old kotlinx-coroutines-test API (#​4198).
  • Deprecated Job.cancelFutureOnCompletion (#​4173).
  • Promoted CoroutineDispatcher.limitedParallelism to stable (#​3864).
  • Promoted CoroutineStart.ATOMIC from ExperimentalCoroutinesApi to DelicateCoroutinesApi (#​4169).
  • Promoted CancellableContinuation.resume with an onCancellation lambda to stable, providing extra arguments to the lambda (#​4088).
  • Marked the classes and interfaces that are not supposed to be inherited from with the new InternalForInheritanceCoroutinesApi opt-in (#​3770).
  • Marked the classes and interfaces inheriting from which is not stable with the new ExperimentalForInheritanceCoroutinesApi opt-in (#​3770).
Other
  • Kotlin was updated to 2.0 (#​4137).
  • Reworked the documentation for CoroutineStart and Channel-based API (#​4147, #​4148, #​4167). Thanks, @​globsterg!
  • Simplified the internal implementation of Job (#​4053).
  • Small tweaks, fixes, and documentation improvements.

v1.8.1

Compare Source

  • Remove the @ExperimentalTime annotation from usages of TimeSource (#​4046). Thanks, @​hfhbd!
  • Introduce a workaround for an Android bug that caused an occasional NullPointerException when setting the StateFlow value on old Android devices (#​3820).
  • No longer use kotlin.random.Random as part of Dispatchers.Default and Dispatchers.IO initialization (#​4051).
  • Flow.timeout throws the exception with which the channel was closed (#​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).
  • Small documentation fixes.

v1.8.0

Compare Source

  • Implement the library for the Web Assembly (Wasm) for JavaScript (#​3713). Thanks @​igoriakovlev!
  • Major Kotlin version update: was 1.8.20, became 1.9.21.
  • On Android, ensure that Dispatchers.Main != Dispatchers.Main.immediate (#​3545, #​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, #​4038)
  • kotlinx-coroutines-debug is published with the correct Java 9 module info (#​3944).
  • kotlinx-coroutines-debug no longer requires manually setting DebugProbes.enableCoroutineCreationStackTraces to false, it's the default (#​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).
  • kotlinx-coroutines-test: fixed a bug that could lead to not all uncaught exceptions being reported after some tests failed (#​3800).
  • delay(Duration) rounds nanoseconds up to whole milliseconds and not down (#​3920). Thanks @​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).
  • It is guaranteed that by the time SharedFlow.collect suspends for the first time, it's registered as a subscriber for that SharedFlow (#​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).
  • Added a workaround for miscompilation of withLock on JS (#​3881). Thanks @​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).
  • 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, #​4038)
  • Small documentation fixes.

v1.7.3

Compare Source

  • Disabled the publication of the multiplatform library metadata for the old (1.6 and earlier) KMP Gradle plugin (#​3809).
  • Fixed a bug introduced in 1.7.2 that disabled the coroutine debugger in IDEA (#​3822).

v1.7.2

Compare Source

Bug fixes and improvements
  • Coroutines debugger no longer keeps track of coroutines with empty coroutine context (#​3782).
  • CopyableThreadContextElement now properly copies an element when crossing the coroutine boundary in flowOn (#​3787). Thanks @​wanyingd1996!
  • Coroutine timeouts no longer prevent K/N newSingleThreadContext from closing (#​3768).
  • A non-linearizability in Mutex during tryLock/unlock sequence with owners is fixed (#​3745).
  • Atomicfu version is updated to 0.21.0.

v1.7.1

Compare Source

Bug fixes and improvements
  • Special characters in coroutine names in JSON dumps are supported (#​3747)
  • The binary compatibility of the experimental overload of runTest is restored (#​3673)
  • Channels that don't use onUndeliveredElement now allocate less memory (#​3646)

v1.7.0

Compare Source

Core API significant improvements
  • New Channel implementation with significant performance improvements across the API (#​3621).
  • New select operator implementation: faster, more lightweight, and more robust (#​3020).
  • Mutex and Semaphore now share the same underlying data structure (#​3020).
  • Dispatchers.IO is added to K/N (#​3205)
    • newFixedThreadPool and Dispatchers.Default implementations on K/N were wholly rewritten to support graceful growth under load (#​3595).
  • kotlinx-coroutines-test rework:
    • Add the timeout parameter to runTest for the whole-test timeout, 10 seconds by default (#​3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#​3603).
    • The withTimeout exception messages indicate if the timeout used the virtual time (#​3588).
    • TestCoroutineScheduler, runTest, and TestScope API are promoted to stable (#​3622).
    • runTest now also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#​1205).
Breaking changes
  • Old K/N memory model is no longer supported (#​3375).
  • New generic upper bounds were added to reactive integration API where the language since 1.8.0 dictates (#​3393).
  • kotlinx-coroutines-core and kotlinx-coroutines-jdk8 artifacts were merged into a single artifact (#​3268).
  • Artificial stackframes in stacktrace recovery no longer contain the \b symbol and are now navigable in IDE and supplied with proper documentation (#​2291).
  • CoroutineContext.isActive returns true for contexts without any job in them (#​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)..
  • JPMS is supported (#​2237). Thanks @​lion7!
  • BroadcastChannel and all the corresponding API are deprecated (#​2680).
  • Added all supported K/N targets (#​3601, #​812, #​855).
  • K/N Dispatchers.Default is backed by the number of threads equal to the number of available cores (#​3366).
  • Fixed an issue where some coroutines' internal exceptions were not properly serializable (#​3328).
  • Introduced Job.parent API (#​3201).
  • Fixed a bug when TestScheduler leaked cancelled jobs (#​3398).
  • TestScope.timeSource now provides comparable time marks (#​3617). Thanks @​hfhbd!
  • Fixed an issue when cancelled withTimeout handles were preserved in JS runtime (#​3440).
  • Ensure awaitFrame only awaits a single frame when used from the main looper (#​3432). Thanks @​pablobaxter!
  • Obsolete Class-Path attribute was removed from kotlinx-coroutines-debug.jar manifest (#​3361).
  • Fixed a bug when updateThreadContext operated on the parent context (#​3411).
  • Added new Flow.filterIsInstance extension (#​3240).
  • Dispatchers.Default thread name prefixes are now configurable with system property (#​3231).
  • Added Flow.timeout operator as @FlowPreview (#​2624). Thanks @​pablobaxter!
  • Improved the performance of the future builder in case of exceptions (#​3475). Thanks @​He-Pin!
  • Mono.awaitSingleOrNull now waits for the onComplete signal (#​3487).
  • Channel.isClosedForSend and Channel.isClosedForReceive are promoted from experimental to delicate (#​3448).
  • Fixed a data race in native EventLoop (#​3547).
  • Dispatchers.IO.limitedParallelism(valueLargerThanIOSize) no longer creates an additional wrapper (#​3442). Thanks @​dovchinnikov!
  • Various @FlowPreview and @ExperimentalCoroutinesApi are promoted to experimental and stable respectively (#​3542, #​3097, #​3548).
  • Performance improvements in Dispatchers.Default and Dispatchers.IO (#​3416, #​3418).
  • Fixed a bug when internal suspendCancellableCoroutineReusable might have hanged (#​3613).
  • Introduced internal API to process events in the current system dispatcher (#​3439).
  • Global CoroutineExceptionHandler is no longer invoked in case of unprocessed future failure (#​3452).
  • Performance improvements and reduced thread-local pressure for the withContext operator (#​3592).
  • Improved performance of DebugProbes (#​3527).
  • Fixed a bug when the coroutine debugger might have detected the state of a coroutine incorrectly (#​3193).
  • CoroutineDispatcher.asExecutor() runs tasks without dispatching if the dispatcher is unconfined (#​3683). Thanks @​odedniv!
  • SharedFlow.toMutableList and SharedFlow.toSet lints are introduced (#​3706).
  • Channel.invokeOnClose is promoted to stable API (#​3358).
  • Improved lock contention in Dispatchers.Default and Dispatchers.IO during the startup phase (#​3652).
  • Fixed a bug that led to threads oversubscription in Dispatchers.Default (#​3642).
  • Fixed a bug that allowed limitedParallelism to perform dispatches even after the underlying dispatcher was closed (#​3672).
  • Fixed a bug that prevented stacktrace recovery when the exception's constructor from cause was selected (#​3714).
  • Improved sanitizing of stracktrace-recovered traces (#​3714).
  • Introduced an internal flag to disable uncaught exceptions reporting in tests as a temporary migration mechanism (#​3736).
  • Various documentation improvements and fixes.

Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md

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://kotlin.github.io/kotlinx.coroutines/) (#​3051, #​3054).

Configuration

📅 Schedule: Branch creation - "after 5pm on the 2nd day of the month" (UTC), 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, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies label Oct 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants