Skip to content

Commit ab1cd2c

Browse files
authored
Update forward compatibility notes (#2964)
Fixes #2924
1 parent 438fb8e commit ab1cd2c

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed

README.md

-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ You can find auto-generated documentation website on [kotlinlang.org](https://ko
7777

7878
[New versions](https://plugins.gradle.org/plugin/org.jetbrains.kotlin.plugin.serialization) of the serialization plugin are released in tandem with each new Kotlin compiler version.
7979

80-
Using Kotlin Serialization requires Kotlin compiler `1.4.0` or higher.
8180
Make sure you have the corresponding Kotlin plugin installed in the IDE, no additional plugins for IDE are required.
8281

8382
### Gradle

docs/compatibility.md

+6-1
Original file line numberDiff line numberDiff line change
@@ -88,5 +88,10 @@ This would be indicated by a compiler error specific to a particular feature.
8888
* New core library versions may or may not require Kotlin compiler plugin update,
8989
depending on a particular release.
9090
We'll try to avoid these situations; however, in case of some unexpected issues, it may be necessary.
91-
So it is possible to have a situation where upgrading serialization runtime from `1.x` to `1.y` requires an update of Kotlin version from `1.4.0` to `1.4.x`.
91+
So it is possible to have a situation where upgrading serialization runtime from `1.a.0` to `1.b.0` requires an update of Kotlin version from `1.x.0` to `1.y.0` (`y` > `x`).
9292
The compiler can detect such problems and will inform you if its version is incompatible with a current version of core library.
93+
94+
Note that according to [general rules for Kotlin binaries](https://kotlinlang.org/docs/kotlin-evolution-principles.html#compatibility-options),
95+
library is mostly forwards compatible with the next language release, but not later ones.
96+
It means that if kotlinx.serialization `1.x` was compiled with Kotlin `2.Y`, it is compatible with Kotlin `2.(Y + 1)`, but not
97+
`2.(Y + 2)`.

0 commit comments

Comments
 (0)