Skip to content

Commit

Permalink
Version 1.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
qwwdfsad authored and pablobaxter committed Sep 14, 2022
1 parent d84b856 commit f9f82e5
Show file tree
Hide file tree
Showing 5 changed files with 66 additions and 5 deletions.
63 changes: 62 additions & 1 deletion CHANGES.md
@@ -1,5 +1,66 @@
# Change log for kotlinx.coroutines

## Version 1.6.0

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.

### kotlinx-coroutines-test rework

* `kotlinx-coroutines-test` became a multiplatform library usable from K/JVM, K/JS, and K/N.
* 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
).
* 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).

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

### Bug fixes and improvements

* Kotlin is updated to 1.6.0.
* 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).
* 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).

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

## Version 1.6.0-RC3

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

### Dispatchers

* * Introduced `CoroutineDispatcher.limitedParallelism` that allows obtaining a view of the original dispatcher with limited parallelism (#2919).
* 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).
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Expand Up @@ -3,7 +3,7 @@
#

# Kotlin
version=1.6.0-RC3-SNAPSHOT
version=1.6.0-SNAPSHOT
group=org.jetbrains.kotlinx
kotlin_version=1.6.0

Expand Down
2 changes: 1 addition & 1 deletion kotlinx-coroutines-debug/README.md
Expand Up @@ -61,7 +61,7 @@ stacktraces will be dumped to the console.
### Using as JVM agent

Debug module can also be used as a standalone JVM agent to enable debug probes on the application startup.
You can run your application with an additional argument: `-javaagent:kotlinx-coroutines-debug-1.6.0-RC3.jar`.
You can run your application with an additional argument: `-javaagent:kotlinx-coroutines-debug-1.6.0.jar`.
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.
When used as Java agent, `"kotlinx.coroutines.debug.enable.creation.stack.trace"` system property can be used to control
[DebugProbes.enableCreationStackTraces] along with agent startup.
Expand Down
2 changes: 1 addition & 1 deletion kotlinx-coroutines-test/README.md
Expand Up @@ -26,7 +26,7 @@ Provided [TestDispatcher] implementations:
Add `kotlinx-coroutines-test` to your project test dependencies:
```
dependencies {
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0-RC3'
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.0'
}
```

Expand Down
2 changes: 1 addition & 1 deletion ui/coroutines-guide-ui.md
Expand Up @@ -110,7 +110,7 @@ Add dependencies on `kotlinx-coroutines-android` module to the `dependencies { .
`app/build.gradle` file:

```groovy
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0-RC3"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0"
```

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

0 comments on commit f9f82e5

Please sign in to comment.