Skip to content

Commit 07c5ce4

Browse files
committed
Version 0.25.0
1 parent 7861411 commit 07c5ce4

File tree

8 files changed

+73
-26
lines changed

8 files changed

+73
-26
lines changed

CHANGES.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,36 @@
11
# Change log for kotlinx.coroutines
22

3+
## Version 0.25.0
4+
5+
* Major rework on exception-handling and cancellation in coroutines (see #333, #452 and #451):
6+
* New ["Exception Handling" section in the guide](coroutines-guide.md#exception-handling) explains exceptions in coroutines.
7+
* Semantics of `Job.cancel` resulting `Boolean` value changed — `true` means exception was handled by the job, caller shall handle otherwise.
8+
* Exceptions are properly propagated from children to parents.
9+
* Installed `CoroutineExceptionHandler` for a family of coroutines receives one aggregated exception in case of failure.
10+
* Change `handleCoroutineException` contract, so custom exception handlers can't break coroutines machinery.
11+
* Unwrap `JobCancellationException` properly to provide exception transparency over whole call chain.
12+
* Introduced support for thread-local elements in coroutines context (see #119):
13+
* `ThreadContextElement` API for custom thread-context sensitive context elements.
14+
* `ThreadLocal.asContextElement()` extension function to convert an arbitrary thread-local into coroutine context element.
15+
* New ["Thread-local data" subsection in the guide](coroutines-guide.md#thread-local-data) with examples.
16+
* SLF4J Mapped Diagnostic Context (MDC) integration is provided via `MDCContext` element defined in [`kotlinx-coroutines-slf4j`](integration/kotlinx-coroutines-slf4j/README.md) integration module.
17+
* Introduced IO dispatcher to offload blocking I/O-intensive tasks (see #79).
18+
* Introduced `ExecutorCoroutineDispatcher` instead of `CloseableCoroutineDispatcher` (see #385).
19+
* Built with Kotlin 1.2.61 and Kotlin/Native 0.8.2.
20+
* JAR files for `kotlinx-coroutines` are now [JEP 238](http://openjdk.java.net/jeps/238) multi-release JAR files.
21+
* On JDK9+ `VarHandle` is used for atomic operations instead of `Atomic*FieldUpdater` for better performance.
22+
* See [AtomicFu](https://github.com/Kotlin/kotlinx.atomicfu/blob/master/README.md) project for details.
23+
* Reversed addition of `BlockingChecker` extension point to control where `runBlocking` can be used (see #227).
24+
* `runBlocking` can be used anywhere without limitations (again), but it would still cause problems if improperly used on UI thread.
25+
* Corrected return-type of `EventLoop` pseudo-constructor (see #477, PR by @Groostav).
26+
* Fixed `as*Future()` integration functions to catch all `Throwable` exceptions (see #469).
27+
* Fixed `runBlocking` cancellation (see #501).
28+
* Fixed races and timing bugs in `withTimeoutOrNull` (see #498).
29+
* Execute `EventLoop.invokeOnTimeout` in `DefaultDispatcher` to allow busy-wait loops inside `runBlocking` (see #479).
30+
* Removed `kotlinx-coroutines-io` module from the project, it has moved to [kotlinx-io](https://github.com/kotlin/kotlinx-io/).
31+
* Provide experimental API to create limited view of experimental dispatcher (see #475).
32+
* Various minor fixes by @LouisCAD, @Dmitry-Borodin.
33+
334
## Version 0.24.0
435

536
* Fully multiplatform release with Kotlin/Native support (see #246):

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[![official JetBrains project](http://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)](http://www.apache.org/licenses/LICENSE-2.0)
5-
[![Download](https://api.bintray.com/packages/kotlin/kotlinx/kotlinx.coroutines/images/download.svg?version=0.24.0) ](https://bintray.com/kotlin/kotlinx/kotlinx.coroutines/0.24.0)
5+
[![Download](https://api.bintray.com/packages/kotlin/kotlinx/kotlinx.coroutines/images/download.svg?version=0.25.0) ](https://bintray.com/kotlin/kotlinx/kotlinx.coroutines/0.25.0)
66

77
Library support for Kotlin coroutines with [multiplatform](#multiplatform) support.
88
This is a companion version for Kotlin 1.2.61 release.
@@ -63,7 +63,7 @@ Add dependencies (you can also add other modules that you need):
6363
<dependency>
6464
<groupId>org.jetbrains.kotlinx</groupId>
6565
<artifactId>kotlinx-coroutines-core</artifactId>
66-
<version>0.24.0</version>
66+
<version>0.25.0</version>
6767
</dependency>
6868
```
6969

@@ -80,7 +80,7 @@ And make sure that you use the latest Kotlin version:
8080
Add dependencies (you can also add other modules that you need):
8181

8282
```groovy
83-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.24.0'
83+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:0.25.0'
8484
```
8585

8686
And make sure that you use the latest Kotlin version:
@@ -113,7 +113,7 @@ Add [`kotlinx-coroutines-android`](ui/kotlinx-coroutines-android)
113113
module as dependency when using `kotlinx.coroutines` on Android:
114114

115115
```groovy
116-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.24.0'
116+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:0.25.0'
117117
```
118118

119119
This gives you access to Android [UI](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-android/kotlinx.coroutines.experimental.android/-u-i.html)

RELEASE.md

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
To release new `<version>` of `kotlinx-coroutines`:
44

5-
1. Checkout `master` branch: <br>
6-
`git checkout master`
5+
1. Checkout `develop` branch: <br>
6+
`git checkout develop`
77

8-
2. Retrieve the most recent `master`: <br>
8+
2. Retrieve the most recent `develop`: <br>
99
`git pull`
10-
11-
3. Merge `develop` branch unto `master`: <br>
12-
`git merge origin/develop`
10+
11+
3. Make sure the `master` branch is fully merged into `develop`:
12+
`git merge master`
1313

1414
4. Search & replace `<old-version>` with `<version>` across the project files. Should replace in:
1515
* [`README.md`](README.md)
@@ -24,35 +24,51 @@ To release new `<version>` of `kotlinx-coroutines`:
2424
* Write each change on a single line (don't wrap with CR).
2525
* Study commit message from previous release.
2626

27-
6. Commit updated files for new version: <br>
27+
6. Create branch for this release:
28+
`git checkout -b version-<version>`
29+
30+
7. Commit updated files to a new version branch:<br>
2831
`git commit -a -m "Version <version>"`
2932

30-
7. Push new version into `master`: <br>
33+
8. Push new version into the branch:<br>
34+
`git push -u origin version-<version>`
35+
36+
9. Create Pull-Request on GitHub from `version-<version>` branch into `master`:
37+
* Review it.
38+
* Make sure it build on CI.
39+
* Get approval for it.
40+
41+
0. Merge new version branch into `master`:<br>
42+
`git checkout master`<br>
43+
`git merge version-<version>`<br>
3144
`git push`
3245

33-
8. On [TeamCity integration server](https://teamcity.jetbrains.com/project.html?projectId=KotlinTools_KotlinxCoroutines):
46+
1. On [TeamCity integration server](https://teamcity.jetbrains.com/project.html?projectId=KotlinTools_KotlinxCoroutines):
3447
* Wait until "Build" configuration for committed `master` branch passes tests.
35-
* Run "Deploy" configuration with the corresponding new version.
48+
* Run "Deploy (Configure, RUN THIS ONE)" configuration with the corresponding new version.
3649

37-
9. In [GitHub](http://github.com/kotlin/kotlinx.coroutines) interface:
50+
2. In [GitHub](http://github.com/kotlin/kotlinx.coroutines) interface:
3851
* Create new release named as `<version>`.
3952
* Cut & paste lines from [`CHANGES.md`](CHANGES.md) into description.
4053

41-
0. Build and publish documentation for web-site: <br>
54+
3. Build and publish documentation for web-site: <br>
4255
`site/deploy.sh <version> push`
4356

44-
1. In [Bintray](https://bintray.com/kotlin/kotlinx/kotlinx.coroutines) admin interface:
57+
4. In [Bintray](https://bintray.com/kotlin/kotlinx/kotlinx.coroutines) admin interface:
4558
* Publish artifacts of the new version.
4659
* Wait until newly published version becomes the most recent.
4760
* Sync to Maven Central.
4861

49-
2. Announce new release in [Slack](http://kotlinlang.slack.com)
62+
5. Announce new release in [Slack](http://kotlinlang.slack.com)
5063

51-
3. Switch into `develop` branch: <br>
64+
6. Switch into `develop` branch:<br>
5265
`git checkout develop`
66+
67+
7. Fetch the latest `master`:<br>
68+
`git fetch`
5369

54-
4. Merge release from `master`: <br>
70+
8. Merge release from `master`:<br>
5571
`git merge master`
5672

57-
5. Push updates to `develop`: <br>
73+
9. Push updates to `develop`:<br>
5874
`git push`

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright 2016-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
33
#
44

5-
version = 0.24.0-SNAPSHOT
5+
version = 0.25.0-SNAPSHOT
66
group = org.jetbrains.kotlinx
77

88
kotlin_version = 1.2.61

native/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ repositories {
4242
}
4343
4444
dependencies {
45-
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core-native:0.24.0'
45+
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core-native:0.25.0'
4646
}
4747
4848
sourceSets {

ui/coroutines-guide-ui.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ Add dependencies on `kotlinx-coroutines-android` module to the `dependencies { .
161161
`app/build.gradle` file:
162162

163163
```groovy
164-
compile "org.jetbrains.kotlinx:kotlinx-coroutines-android:0.24.0"
164+
compile "org.jetbrains.kotlinx:kotlinx-coroutines-android:0.25.0"
165165
```
166166

167167
Coroutines are experimental feature in Kotlin.

ui/kotlinx-coroutines-android/animation-app/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ org.gradle.jvmargs=-Xmx1536m
1919
kotlin.coroutines=enable
2020

2121
kotlin_version = 1.2.61
22-
coroutines_version = 0.24.0
22+
coroutines_version = 0.25.0
2323

ui/kotlinx-coroutines-android/example-app/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ org.gradle.jvmargs=-Xmx1536m
1919
kotlin.coroutines=enable
2020

2121
kotlin_version = 1.2.61
22-
coroutines_version = 0.24.0
22+
coroutines_version = 0.25.0
2323

0 commit comments

Comments
 (0)