You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/compatibility.md
+8-8Lines changed: 8 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -14,36 +14,36 @@ since Kotlin/Native and Kotlin/JS are experimental themselves and currently do n
14
14
## Core library compatibility
15
15
16
16
Core library public API comes in three flavours: general (stable), experimental, and internal.
17
-
ll public API except stable is marked with the corresponding annotation.
17
+
All public API except stable is marked with the corresponding annotation.
18
18
To learn how to use declarations that require opt-in, please refer to [corresponding documentation page](https://kotlinlang.org/docs/reference/opt-in-requirements.html#non-propagating-use).
19
19
20
20
### Stable API
21
21
22
22
Stable API is guaranteed to preserve its ABI and documented semantics:
23
23
24
-
* It cannot change its semantics expressed in its documentation
24
+
* It cannot change its semantics expressed in its documentation.
25
25
* It is binary backwards-compatible: during update of `kotlinx.serialization` version, previously compiled code will continue to work.
26
26
For example, for a library that depends only on `kotlinx.serialization` stable API,
27
27
clients of the library can easily depend on a next `kotlinx.serialization` version and expect everything to work.
28
28
* It is source backwards compatible modulo major deprecation. Most of the API is here to stay forever,
29
-
unless an unfixable security or design flaw is exposed. Minor releases never add source-incompatible changes to stable API
29
+
unless an unfixable security or design flaw is exposed. Minor releases never add source-incompatible changes to the stable API.
30
30
31
31
#### Deprecation cycle
32
32
33
33
When API is deprecated, it goes through multiple stages and there is at least one major release between each stages.
34
34
35
-
Feature is deprecated with compilation warning. Most of the time, proper replacement (and corresponding `replaceWith` declaration) is provided to automatically migrate deprecated usages with a help of IntelliJ IDEA.
36
-
Deprecation level is increased to error or hidden. It is no longer possible to compile new code against deprecated API, though it is still present in the ABI.
37
-
API is completely removed. While we give our best efforts not to do so and have no plans of removing any API, we still are leaving this option in case of unforeseen problems such as security issues.
35
+
1.Feature is deprecated with compilation warning. Most of the time, proper replacement (and corresponding `replaceWith` declaration) is provided to automatically migrate deprecated usages with a help of IntelliJ IDEA.
36
+
2.Deprecation level is increased to error or hidden. It is no longer possible to compile new code against deprecated API, though it is still present in the ABI.
37
+
3.API is completely removed. While we give our best efforts not to do so and have no plans of removing any API, we still are leaving this option in case of unforeseen problems such as security issues.
38
38
39
39
40
40
### Experimental API
41
41
42
42
This API marked as `@ExperimentalSerializationApi`. API is marked experimental when its design has potential open questions which may eventually lead to either semantics changes of the API or its deprecation.
43
-
By default, most of the new API is marked as experimental and becomes stable in one of the next major releases if no new issues arise. Otherwise, either semantics is fixed without changes in ABI or API goes through deprecation cycle.
43
+
By default, most of the new API is marked as experimental and becomes stable in one of the next releases if no new issues arise. Otherwise, either semantics is fixed without changes in ABI or API goes through deprecation cycle.
44
44
45
45
However, we'll try to provide best-effort compatibility — such declarations won't be deleted or changed instantly,
46
-
they will go through deprecation cycle if this is possible. However, these deprecation cycle may be faster than usual.
46
+
they will go through deprecation cycle if this is possible. However, this deprecation cycle may be faster than usual.
Copy file name to clipboardExpand all lines: docs/migration.md
+8-7Lines changed: 8 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,13 @@ with automatic replacements.
7
7
8
8
To simplify your migrations path, it is recommended to enable star imports in IDE (so all extensions are imported automatically) first.
9
9
10
-
1. Update `kotlinx.serialization` to version 1.0.0-RC2 (this is the last version that has migrations for pre-1.0.0 versions)
11
-
2. Rename dependency from `kotlinx-serialization-runtime` to `kotlinx-serialization-json`
10
+
1. Update `kotlinx.serialization` to version `1.0.0-RC2` (this is the last version that has migrations for pre-1.0.0 versions. 1.0.0 version itself does not have any migration aids.)
11
+
2. Rename dependency from `kotlinx-serialization-runtime` to `kotlinx-serialization-json`.
12
12
3. For multiplatform usages, remove dependencies to platform-specific artifacts (e.g. `kotlinx-serialization-runtime-js`), they are [no longer required](/README.md#multiplatform-common-js-native) by Gradle.
13
-
4. Update Kotlin to 1.4.0
14
-
5. Start applying replacements for the deprecated code
15
-
6. If some signatures are not resolved, try to hit `alt + Enter` and import the signature
16
-
7. If methods are still not resolved, it is recommended to use star imports for `kotlinx.serialization` signatures in the problematic file
13
+
4. Update Kotlin to 1.4.0 or higher.
14
+
5. Start applying replacements for the deprecated code.
15
+
6. If some signatures are not resolved, try to hit `alt + Enter` and import the signature.
16
+
7. If methods are still not resolved, it is recommended to use star imports for `kotlinx.serialization` signatures in the problematic file.
17
+
8. When there are no usages of deprecated code left, you can change dependency version from `1.0.0-RC2` to `1.0.0`.
17
18
18
-
For less trivial issues, it is recommended to study [the changelog](../CHANGELOG.md#100-rc--2020-08-17) or to ask for help in `#serialization` Slack channel.
19
+
For less trivial issues, it is recommended to study [the changelog](../CHANGELOG.md#100-rc--2020-08-17) or to ask for help in `#serialization`Kotlin's Slack channel.
0 commit comments