Skip to content

Commit d51ccbb

Browse files
Prepare 1.0.0 release
Co-authored-by: Vsevolod Tolstopyatov <qwwdfsad@gmail.com>
1 parent de538ad commit d51ccbb

File tree

6 files changed

+46
-25
lines changed

6 files changed

+46
-25
lines changed

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1+
1.0.0 / 2020-10-08
2+
==================
3+
4+
The first public stable release, yay!
5+
The definitions of stability and backwards compatibility guarantees are located in the [corresponding document](docs/compatibility.md).
6+
We now also have a GitHub Pages site with [full API reference](https://kotlin.github.io/kotlinx.serialization/).
7+
8+
Compared to RC2, no new features apart from #947 were added and all previously deprecated declarations and migrations were deleted.
9+
If you are using RC/RC2 along with deprecated declarations, please, migrate before updating to 1.0.0.
10+
In case you are using pre-1.0 versions (e.g. 0.20.0), please refer to our [migration guide](docs/migration.md).
11+
12+
### Bugfixes and improvements
13+
14+
* Support nullable types at top-level for JsonElement decoding (#1117)
15+
* Add CBOR ignoreUnknownKeys option (#947) (thanks to [Travis Wyatt](https://github.com/twyatt))
16+
* Fix incorrect documentation of `encodeDefaults` (#1108) (thanks to [Anders Carling](https://github.com/anderscarling))
17+
118
1.0.0-RC2 / 2020-09-21
219
==================
320

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
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)](http://www.apache.org/licenses/LICENSE-2.0)
55
[![TeamCity build](https://img.shields.io/teamcity/http/teamcity.jetbrains.com/s/KotlinTools_KotlinxSerialization_Ko.svg)](https://teamcity.jetbrains.com/viewType.html?buildTypeId=KotlinTools_KotlinxSerialization_Ko&guest=1)
6-
[![Download](https://api.bintray.com/packages/kotlin/kotlinx/kotlinx.serialization.runtime/images/download.svg?version=1.0.0-RC2) ](https://bintray.com/kotlin/kotlinx/kotlinx.serialization.runtime/1.0.0-RC2)
6+
[![Download](https://api.bintray.com/packages/kotlin/kotlinx/kotlinx.serialization.runtime/images/download.svg?version=1.0.0) ](https://bintray.com/kotlin/kotlinx/kotlinx.serialization.runtime/1.0.0)
77

88
Kotlin serialization consists of a compiler plugin, that generates visitor code for serializable classes,
99
runtime library with core serialization API and support libraries with various serialization formats.
@@ -61,6 +61,8 @@ Project(name=kotlinx.serialization, language=Kotlin)
6161

6262
**Read the [Kotlin Serialization Guide](docs/serialization-guide.md) for all details.**
6363

64+
You can find auto-generated documentation website on [GitHub Pages](https://kotlin.github.io/kotlinx.serialization/).
65+
6466
## Setup
6567

6668
Kotlin serialization plugin is shipped with the Kotlin compiler distribution, and the IDEA plugin is bundled into the Kotlin plugin.
@@ -93,7 +95,7 @@ plugins {
9395
}
9496
```
9597

96-
> Kotlin versions before are not supported by the stable release of Kotlin serialization
98+
> Kotlin versions before 1.4.0 are not supported by the stable release of Kotlin serialization
9799
98100
#### Using `apply plugin` (the old way)
99101

@@ -141,30 +143,31 @@ Kotlin DSL:
141143

142144
```kotlin
143145
repositories {
144-
// artifacts are published to JCenter
146+
// Artifacts are also available on Maven Central
145147
jcenter()
146148
}
147149

148150
dependencies {
149151
implementation(kotlin("stdlib", KotlinCompilerVersion.VERSION)) // or "stdlib-jdk8"
150-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0-RC2") // JVM dependency
152+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0")
151153
}
152154
```
153155

154156
Groovy DSL:
155157

156158
```gradle
157159
repositories {
160+
// Artifacts are also available on Maven Central
158161
jcenter()
159162
}
160163
161164
dependencies {
162165
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" // or "kotlin-stdlib-jdk8"
163-
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0-RC2" // JVM dependency
166+
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.0"
164167
}
165168
```
166169

167-
>We also provide kotlinx-serialization-core artifact that contains all serialization API but does not have bundled serialization format with it
170+
>We also provide `kotlinx-serialization-core` artifact that contains all serialization API but does not have bundled serialization format with it
168171
169172
### Android
170173

@@ -192,8 +195,8 @@ You can add dependency to the required module right to the common source set:
192195
```gradle
193196
commonMain {
194197
dependencies {
198+
// Works as common dependency as well as the platform one
195199
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:$serialization_version"
196-
implementation "org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$serialization_version"
197200
}
198201
}
199202
```
@@ -206,7 +209,7 @@ Ensure the proper version of Kotlin and serialization version:
206209
```xml
207210
<properties>
208211
<kotlin.version>1.4.10</kotlin.version>
209-
<serialization.version>1.0.0-RC2</serialization.version>
212+
<serialization.version>1.0.0</serialization.version>
210213
</properties>
211214
```
212215

docs/compatibility.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,36 +14,36 @@ since Kotlin/Native and Kotlin/JS are experimental themselves and currently do n
1414
## Core library compatibility
1515

1616
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.
1818
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).
1919

2020
### Stable API
2121

2222
Stable API is guaranteed to preserve its ABI and documented semantics:
2323

24-
* It cannot change its semantics expressed in its documentation
24+
* It cannot change its semantics expressed in its documentation.
2525
* It is binary backwards-compatible: during update of `kotlinx.serialization` version, previously compiled code will continue to work.
2626
For example, for a library that depends only on `kotlinx.serialization` stable API,
2727
clients of the library can easily depend on a next `kotlinx.serialization` version and expect everything to work.
2828
* 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.
3030

3131
#### Deprecation cycle
3232

3333
When API is deprecated, it goes through multiple stages and there is at least one major release between each stages.
3434

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.
3838

3939

4040
### Experimental API
4141

4242
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.
4444

4545
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.
4747

4848
Usage notes:
4949

docs/migration.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@ with automatic replacements.
77

88
To simplify your migrations path, it is recommended to enable star imports in IDE (so all extensions are imported automatically) first.
99

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`.
1212
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`.
1718

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.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44

55
group=org.jetbrains.kotlinx
6-
version=1.0.0-RC2
6+
version=1.0.0
77

88
kotlin.version=1.4.10
99

integration-test/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#
44

55
mainKotlinVersion=1.4.10
6-
mainLibVersion=1.0.0-RC2
6+
mainLibVersion=1.0.0
77

88
kotlin.code.style=official
99
kotlin.js.compiler=both

0 commit comments

Comments
 (0)