Vsevolod Tolstopyatov [JB]
09/28/2018, 5:49 PMkotlinx.coroutines
version 0.30.0
.
We are happy to announce the last release for Kotlin 1.2.70 and the last 0.x.x
release.
The next release will be 1.0.0-RC for Kotlin 1.3-RC and all deprecated API will be removed.
Changelist:
* [Major] async
and async-like builders cancel parent on failure, making parallel decomposition completely exception-safe. No more unnecessary awaitAll
in structured concurrency!
* [Major] Coroutine scheduler is used for Dispatchers.Default
instead of deprecated CommonPool
.
* Supervisor job and supervisor scope for more controlled cancellation of coroutines hierarchies.
* Job()
with parent now also cancels parent on failure consistently with other scopes.
* Various bug fixes and improvements. See the full changelog here: https://github.com/Kotlin/kotlinx.coroutines/releases/tag/0.30.0.
To properly prepare your application to 1.0.0 release, do the following steps:
1) Update kotlinx.coroutines
to 0.30.0
version.
2) Inspect compiler warnings about deprecated API and migrate it to a proposed alternative. Most of deprecated API has a corresponding replacement which can be applied from IDEA with quickfix.
3) Update Kotlin version to 1.3-RC and kotlinx.coroutines
to 0.30.0-eap13
.
4) Update kotlinx.coroutines
to 1.0.0
when it’s released 🙂
Compatibility and migration policy: https://github.com/Kotlin/kotlinx.coroutines/blob/master/COMPATIBILITY.md0.30.0-eap13
will be released on Mondaycbruegg
09/28/2018, 5:53 PMobject
singleton just for the sake of namespacing, while Dispatchers
is doing pretty much that, right? Is there any specific reason behind the dispatchers not simply being top-level `val`s? (I'd actually be in favor of using `object`s for namespacing, but I don't want to violate style guides.)louiscad
09/28/2018, 5:54 PMDelegates
cbruegg
09/28/2018, 5:57 PMelizarov
09/28/2018, 6:36 PM