Skip to content

Commit 812f2dd

Browse files
committed
Version 1.6.0
1 parent bbb175b commit 812f2dd

File tree

6 files changed

+73
-12
lines changed

6 files changed

+73
-12
lines changed

CHANGES.md

+62-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,66 @@
11
# Change log for kotlinx.coroutines
22

3+
## Version 1.6.0
4+
5+
Note that this is a full changelog relative to 1.5.2 version. Changelog relative to 1.6.0-RC3 can be found in the end.
6+
7+
### kotlinx-coroutines-test rework
8+
9+
* `kotlinx-coroutines-test` became a multiplatform library usable from K/JVM, K/JS, and K/N.
10+
* Its API was completely reworked to address long-standing issues with consistency, structured concurrency and correctness (#1203, #1609, #2379, #1749, #1204, #1390, #1222, #1395, #1881, #1910, #1772, #1626, #1742, #2082, #2102, #2405, #2462
11+
).
12+
* The old API is deprecated for removal, but the new API is based on the similar concepts ([README](kotlinx-coroutines-test/README.md)), and the migration path is designed to be graceful: [migration guide](kotlinx-coroutines-test/MIGRATION.md).
13+
14+
### Dispatchers
15+
16+
* Introduced `CoroutineDispatcher.limitedParallelism` that allows obtaining a view of the original dispatcher with limited parallelism (#2919).
17+
* `Dispatchers.IO.limitedParallelism` usages ignore the bound on the parallelism level of `Dispatchers.IO` itself to avoid starvation (#2943).
18+
* Introduced new `Dispatchers.shutdown` method for containerized environments (#2558).
19+
* `newSingleThreadContext` and `newFixedThreadPoolContext` are promoted to delicate API (#2919).
20+
21+
### Breaking changes
22+
23+
* When racing with cancellation, the `future` builder no longer reports unhandled exceptions into the global `CoroutineExceptionHandler`. Thanks @vadimsemenov! (#2774, #2791).
24+
* `Mutex.onLock` is deprecated for removal (#2794).
25+
* `Dispatchers.Main` is now used as the default source of time for `delay` and `withTimeout` when present(#2972).
26+
* To opt-out from this behaviour, `kotlinx.coroutines.main.delay` system property can be set to `false`.
27+
* Java target of coroutines build is now 8 instead of 6 (#1589).
28+
29+
### Bug fixes and improvements
30+
31+
* Kotlin is updated to 1.6.0.
32+
* Kotlin/Native [new memory model](https://blog.jetbrains.com/kotlin/2021/08/try-the-new-kotlin-native-memory-manager-development-preview/) is now supported in regular builds of coroutines conditionally depending on whether `kotlin.native.binary.memoryModel` is enabled (#2914).
33+
* Introduced `CopyableThreadContextElement` for mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).
34+
* `transformWhile`, `awaitClose`, `ProducerScope`, `merge`, `runningFold`, `runingReduce`, and `scan` are promoted to stable API (#2971).
35+
* `SharedFlow.subscriptionCount` no longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription (#2488, #2863, #2871).
36+
* `Flow` exception transparency mechanism is improved to be more exception-friendly (#3017, #2860).
37+
* Cancellation from `flat*` operators that leverage multiple coroutines is no longer propagated upstream (#2964).
38+
* `SharedFlow.collect` now returns `Nothing` (#2789, #2502).
39+
* `DisposableHandle` is now `fun interface`, and corresponding inline extension is removed (#2790).
40+
* `FlowCollector` is now `fun interface`, and corresponding inline extension is removed (#3047).
41+
* Deprecation level of all previously deprecated signatures is raised (#3024).
42+
* The version file is shipped with each JAR as a resource (#2941).
43+
* Unhandled exceptions on K/N are passed to the standard library function `processUnhandledException` (#2981).
44+
* A direct executor is used for `Task` callbacks in `kotlinx-coroutines-play-services` (#2990).
45+
* Metadata of coroutines artifacts leverages Gradle platform to have all versions of dependencies aligned (#2865).
46+
* Default `CoroutineExceptionHandler` is loaded eagerly and does not invoke `ServiceLoader` on its exception-handling path (#2552).
47+
* Fixed the R8 rules for `ServiceLoader` optimization (#2880).
48+
* Fixed BlockHound integration false-positives (#2894, #2866, #2937).
49+
* Fixed the exception handler being invoked several times on Android, thanks to @1zaman (#3056).
50+
* `SendChannel.trySendBlocking` is now available on Kotlin/Native (#3064).
51+
* The exception recovery mechanism now uses `ClassValue` when available (#2997).
52+
* JNA is updated to 5.9.0 to support Apple M1 (#3001).
53+
* Obsolete method on internal `Delay` interface is deprecated (#2979).
54+
* Support of deprecated `CommonPool` is removed.
55+
* `@ExperimentalTime` is no longer needed for methods that use `Duration` (#3041).
56+
* JDK 1.6 is no longer required for building the project (#3043).
57+
* 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).
58+
59+
### Changelog relative to version 1.6.0-RC3
60+
61+
* Restored MPP binary compatibility on K/JS and K/N (#3104).
62+
* Fixed Dispatchers.Main not being fully initialized on Android and Swing (#3101).
63+
364
## Version 1.6.0-RC3
465

566
* Fixed the error in 1.6.0-RC2 because of which `Flow.collect` couldn't be called due to the `@InternalCoroutinesApi` annotation (#3082)
@@ -29,7 +90,7 @@
2990

3091
### Dispatchers
3192

32-
* * Introduced `CoroutineDispatcher.limitedParallelism` that allows obtaining a view of the original dispatcher with limited parallelism (#2919).
93+
* Introduced `CoroutineDispatcher.limitedParallelism` that allows obtaining a view of the original dispatcher with limited parallelism (#2919).
3394
* `Dispatchers.IO.limitedParallelism` usages ignore the bound on the parallelism level of `Dispatchers.IO` itself to avoid starvation (#2943).
3495
* Introduced new `Dispatchers.shutdown` method for containerized environments (#2558).
3596
* `newSingleThreadContext` and `newFixedThreadPoolContext` are promoted to delicate API (#2919).

README.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![official JetBrains project](https://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
44
[![GitHub license](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg?style=flat)](https://www.apache.org/licenses/LICENSE-2.0)
5-
[![Download](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.6.0-RC3)](https://search.maven.org/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.6.0-RC3/pom)
5+
[![Download](https://img.shields.io/maven-central/v/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.6.0)](https://search.maven.org/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.6.0/pom)
66
[![Kotlin](https://img.shields.io/badge/kotlin-1.6.0-blue.svg?logo=kotlin)](http://kotlinlang.org)
77
[![Slack channel](https://img.shields.io/badge/chat-slack-green.svg?logo=slack)](https://kotlinlang.slack.com/messages/coroutines/)
88

@@ -83,7 +83,7 @@ Add dependencies (you can also add other modules that you need):
8383
<dependency>
8484
<groupId>org.jetbrains.kotlinx</groupId>
8585
<artifactId>kotlinx-coroutines-core</artifactId>
86-
<version>1.6.0-RC3</version>
86+
<version>1.6.0</version>
8787
</dependency>
8888
```
8989

@@ -101,7 +101,7 @@ Add dependencies (you can also add other modules that you need):
101101

102102
```groovy
103103
dependencies {
104-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0-RC3'
104+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0'
105105
}
106106
```
107107

@@ -127,7 +127,7 @@ Add dependencies (you can also add other modules that you need):
127127

128128
```groovy
129129
dependencies {
130-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0-RC3")
130+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0")
131131
}
132132
```
133133

@@ -147,7 +147,7 @@ Add [`kotlinx-coroutines-android`](ui/kotlinx-coroutines-android)
147147
module as a dependency when using `kotlinx.coroutines` on Android:
148148

149149
```groovy
150-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0-RC3'
150+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
151151
```
152152

153153
This gives you access to the Android [Dispatchers.Main]
@@ -180,7 +180,7 @@ In common code that should get compiled for different platforms, you can add a d
180180
```groovy
181181
commonMain {
182182
dependencies {
183-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0-RC3")
183+
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0")
184184
}
185185
}
186186
```
@@ -192,7 +192,7 @@ Platform-specific dependencies are recommended to be used only for non-multiplat
192192
#### JS
193193

194194
Kotlin/JS version of `kotlinx.coroutines` is published as
195-
[`kotlinx-coroutines-core-js`](https://search.maven.org/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core-js/1.6.0-RC3/jar)
195+
[`kotlinx-coroutines-core-js`](https://search.maven.org/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-core-js/1.6.0/jar)
196196
(follow the link to get the dependency declaration snippet) and as [`kotlinx-coroutines-core`](https://www.npmjs.com/package/kotlinx-coroutines-core) NPM package.
197197

198198
#### Native

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44

55
# Kotlin
6-
version=1.6.0-RC3-SNAPSHOT
6+
version=1.6.0-SNAPSHOT
77
group=org.jetbrains.kotlinx
88
kotlin_version=1.6.0
99

kotlinx-coroutines-debug/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ stacktraces will be dumped to the console.
6161
### Using as JVM agent
6262

6363
Debug module can also be used as a standalone JVM agent to enable debug probes on the application startup.
64-
You can run your application with an additional argument: `-javaagent:kotlinx-coroutines-debug-1.6.0-RC3.jar`.
64+
You can run your application with an additional argument: `-javaagent:kotlinx-coroutines-debug-1.6.0.jar`.
6565
Additionally, on Linux and Mac OS X you can use `kill -5 $pid` command in order to force your application to print all alive coroutines.
6666
When used as Java agent, `"kotlinx.coroutines.debug.enable.creation.stack.trace"` system property can be used to control
6767
[DebugProbes.enableCreationStackTraces] along with agent startup.

kotlinx-coroutines-test/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Provided [TestDispatcher] implementations:
2626
Add `kotlinx-coroutines-test` to your project test dependencies:
2727
```
2828
dependencies {
29-
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0-RC3'
29+
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0'
3030
}
3131
```
3232

ui/coroutines-guide-ui.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ Add dependencies on `kotlinx-coroutines-android` module to the `dependencies { .
110110
`app/build.gradle` file:
111111

112112
```groovy
113-
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0-RC3"
113+
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0"
114114
```
115115

116116
You can clone [kotlinx.coroutines](https://github.com/Kotlin/kotlinx.coroutines) project from GitHub onto your

0 commit comments

Comments
 (0)