diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5dad15ff..6eae1282 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -20,7 +20,7 @@ env: ALGOLIA_INDEX_NAME: 'prod_kotlin_rpc' ALGOLIA_KEY: '${{ secrets.ALGOLIA_KEY }}' CONFIG_JSON_PRODUCT: 'kotlinx-rpc' - CONFIG_JSON_VERSION: '0.7.0' + CONFIG_JSON_VERSION: '0.8.0' jobs: build: diff --git a/CHANGELOG.md b/CHANGELOG.md index ab546d69..491a5e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,57 @@ +# 0.8.0 +> Published 30 June 2025 + +## Overview +This release brings a lot of changes, including breaking changes: +- Kotlin 2.2.0 Update +- Decoupling of `kotlinx.serialization` from the core functionality +- Simplifying lifetime schema (services lost their `CoroutineScope`) +- Irreversible enforcement of the [strict mode](https://kotlin.github.io/kotlinx-rpc/strict-mode.html) + +These changes significantly reduce the number of footguns and improve the overall usability of the library. + +Additionally, the internal structure of kRPC protocol and our compiler plugin reduced its complexity. +That allows us to provide better quality in future releases +(and this also applies to gRPC, even though in this particular release it was not a priority). + +For the full list of changes that require migration, +see the [Migration Guide](https://kotlin.github.io/kotlinx-rpc/0-8-0.html). + +## Docs update + +We added three new documentation sections: +- [API Reference](https://kotlin.github.io/kotlinx-rpc/api/index.html) +- [Platform compatibility overview](https://kotlin.github.io/kotlinx-rpc/platforms.html) +- [Changelog](https://kotlin.github.io/kotlinx-rpc/changelog.html) in the web + +### Features ๐ŸŽ‰ +* Serialization decoupling by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/354 +* Update Kotlin to 2.2.0 by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/359 + +### Breaking Changes ๐Ÿ”ด +* [Meta] Strict mode, deprecations, lifetime by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/353 + +### Bug fixes ๐Ÿ› +* Fix compilation for standalone k2 module by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/350 +* Fix Pupperteer Version by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/355 + +### Documentation ๐Ÿ“— +* Platforms Table and docs by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/356 +* Dokka by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/357 +* Add Changelog.md to Docs by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/358 +* Onboarding by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/363 + +### Other Changes ๐Ÿงน +* Advance version to 0.8.0-SNAPSHOT by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/340 +* Update README.md to use non-suspend flows by @brokenhappy in https://github.com/Kotlin/kotlinx-rpc/pull/342 +* Fix kotlin master builds by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/345 +* Simplify Gradle Configs by @Mr3zee in https://github.com/Kotlin/kotlinx-rpc/pull/360 + +## New Contributors +* @brokenhappy made their first contribution in https://github.com/Kotlin/kotlinx-rpc/pull/342 + +**Full Changelog**: https://github.com/Kotlin/kotlinx-rpc/compare/0.7.0...0.8.0 + # 0.7.0 > Published 13 May 2025 diff --git a/README.md b/README.md index 8e09c897..a9605b3b 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,7 @@ Example of a setup in a project's `build.gradle.kts`: plugins { kotlin("multiplatform") version "2.2.0" kotlin("plugin.serialization") version "2.2.0" - id("org.jetbrains.kotlinx.rpc.plugin") version "0.7.0" + id("org.jetbrains.kotlinx.rpc.plugin") version "0.8.0" } ``` @@ -151,15 +151,15 @@ And now you can add dependencies to your project: ```kotlin dependencies { // Client API - implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-client:0.7.0") + implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-client:0.8.0") // Server API - implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-server:0.7.0") + implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-server:0.8.0") // Serialization module. Also, protobuf and cbor are provided - implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-serialization-json:0.7.0") + implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-serialization-json:0.8.0") // Transport implementation for Ktor - implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-client:0.7.0") - implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-server:0.7.0") + implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-client:0.8.0") + implementation("org.jetbrains.kotlinx:kotlinx-rpc-krpc-ktor-server:0.8.0") // Ktor API implementation("io.ktor:ktor-client-cio-jvm:$ktor_version") diff --git a/docs/pages/kotlinx-rpc/help-versions.json b/docs/pages/kotlinx-rpc/help-versions.json index 88888d30..2c7d0e0a 100644 --- a/docs/pages/kotlinx-rpc/help-versions.json +++ b/docs/pages/kotlinx-rpc/help-versions.json @@ -1,3 +1,3 @@ [ - {"version":"0.7.0","url":"/kotlinx-rpc/0.7.0/","isCurrent":true} + {"version":"0.8.0","url":"/kotlinx-rpc/0.8.0/","isCurrent":true} ] diff --git a/docs/pages/kotlinx-rpc/v.list b/docs/pages/kotlinx-rpc/v.list index e1b31733..d556cded 100644 --- a/docs/pages/kotlinx-rpc/v.list +++ b/docs/pages/kotlinx-rpc/v.list @@ -14,6 +14,6 @@ - + diff --git a/docs/pages/kotlinx-rpc/writerside.cfg b/docs/pages/kotlinx-rpc/writerside.cfg index 605d1779..69d888c3 100644 --- a/docs/pages/kotlinx-rpc/writerside.cfg +++ b/docs/pages/kotlinx-rpc/writerside.cfg @@ -12,5 +12,5 @@ - + diff --git a/kotlin-js-store/package-lock.json b/kotlin-js-store/package-lock.json index 157b33f1..3415a64f 100644 --- a/kotlin-js-store/package-lock.json +++ b/kotlin-js-store/package-lock.json @@ -1,12 +1,12 @@ { "name": "kotlinx-rpc", - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "kotlinx-rpc", - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "workspaces": [ "packages/kotlinx-rpc-core", "packages/kotlinx-rpc-core-test", @@ -4415,11 +4415,11 @@ "devDependencies": {} }, "packages/kotlinx-rpc-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4438,11 +4438,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-client": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-client-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4461,11 +4461,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4484,14 +4484,14 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-client": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "ws": "8.18.0" }, "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-client-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0", "ws": "8.18.0" @@ -4511,11 +4511,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4534,11 +4534,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-server": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-server-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4557,11 +4557,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-logging": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-logging-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4580,11 +4580,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-cbor": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-cbor-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4603,11 +4603,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4626,11 +4626,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-json": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-json-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4649,11 +4649,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-protobuf": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-protobuf-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4672,11 +4672,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-server": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-server-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4695,11 +4695,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-test-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4718,11 +4718,11 @@ } }, "packages/kotlinx-rpc-utils": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-utils-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, diff --git a/kotlin-js-store/wasm/package-lock.json b/kotlin-js-store/wasm/package-lock.json index d470b1d5..44f3782d 100644 --- a/kotlin-js-store/wasm/package-lock.json +++ b/kotlin-js-store/wasm/package-lock.json @@ -1,12 +1,12 @@ { "name": "kotlinx-rpc", - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "kotlinx-rpc", - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "workspaces": [ "packages/kotlinx-rpc-core", "packages/kotlinx-rpc-core-test", @@ -4415,11 +4415,11 @@ "devDependencies": {} }, "packages/kotlinx-rpc-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4437,11 +4437,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-client": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-client-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4459,11 +4459,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4481,14 +4481,14 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-client": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "ws": "8.18.0" }, "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-client-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0", "ws": "8.18.0" @@ -4507,11 +4507,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4529,11 +4529,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-server": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-ktor-krpc-ktor-server-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4551,11 +4551,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-logging": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-logging-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4573,11 +4573,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-cbor": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-cbor-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4595,11 +4595,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-core": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-core-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4617,11 +4617,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-json": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-json-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4639,11 +4639,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-protobuf": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-serialization-krpc-serialization-protobuf-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4661,11 +4661,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-server": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-server-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4683,11 +4683,11 @@ } }, "packages/kotlinx-rpc-krpc-krpc-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-krpc-krpc-test-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, @@ -4705,11 +4705,11 @@ } }, "packages/kotlinx-rpc-utils": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "devDependencies": {} }, "packages/kotlinx-rpc-utils-test": { - "version": "0.8.0-SNAPSHOT", + "version": "0.8.0", "dependencies": { "puppeteer": "24.9.0" }, diff --git a/versions-root/libs.versions.toml b/versions-root/libs.versions.toml index 71c747da..fea2bcec 100644 --- a/versions-root/libs.versions.toml +++ b/versions-root/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # core library version -kotlinx-rpc = "0.8.0-SNAPSHOT" +kotlinx-rpc = "0.8.0" # kotlin kotlin-lang = "2.2.0" # or env.KOTLIN_VERSION