From 4b32ce6b96fe17cb8b634070ff1d9a5bc12fe0f7 Mon Sep 17 00:00:00 2001 From: Rustam Date: Thu, 28 Apr 2022 14:44:27 +0200 Subject: [PATCH] Release 2.0.1 (#2977) --- CHANGELOG.md | 340 ++++++++++++++++++++++++++++++++++++++++++++++ gradle.properties | 2 +- 2 files changed, 341 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e95228eaa2..bed93d13ed6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,341 @@ +# 2.0.1 +> Published 28 April 2022 + +* Fix URL representation ([KTOR-4241](https://youtrack.jetbrains.com/issue/KTOR-4241)) +* embeddedServer for CIO and Netty inconsistency ([KTOR-755](https://youtrack.jetbrains.com/issue/KTOR-755)) +* Update Coroutines to 1.6.1 ([KTOR-4240](https://youtrack.jetbrains.com/issue/KTOR-4240)) +* Locations: Support trailing / ([KTOR-836](https://youtrack.jetbrains.com/issue/KTOR-836)) +* Resources: Make `Route.handle` public ([KTOR-4200](https://youtrack.jetbrains.com/issue/KTOR-4200)) +* Fix CURL flaky initialization ([KTOR-4223](https://youtrack.jetbrains.com/issue/KTOR-4223)) +* Optimize Slow Native Tests ([KTOR-4224](https://youtrack.jetbrains.com/issue/KTOR-4224)) +* Print Native Stacktrace on Timeout ([KTOR-4198](https://youtrack.jetbrains.com/issue/KTOR-4198)) +* """IllegalStateException: Operation is already in progress"" when the readByte is called the second time after a timeout" ([KTOR-4218](https://youtrack.jetbrains.com/issue/KTOR-4218)) +* Update Kotlin to 1.6.21 ([KTOR-4221](https://youtrack.jetbrains.com/issue/KTOR-4221)) +* Update code for editing an article in the 'Interactive website' tutorial ([KTOR-4227](https://youtrack.jetbrains.com/issue/KTOR-4227)) +* DefaultRequest: HTTPS protocol isn't set when using Ktor 2.0.0 ([KTOR-4142](https://youtrack.jetbrains.com/issue/KTOR-4142)) +* DefaultRequest: host and port aren't used for a request ([KTOR-4154](https://youtrack.jetbrains.com/issue/KTOR-4154)) +* A table with test methods should span the entire width of the dialog ([KTOR-4064](https://youtrack.jetbrains.com/issue/KTOR-4064)) +* StatusPages plugin does not handle most specific exception in Ktor 2.0.0 ([KTOR-4187](https://youtrack.jetbrains.com/issue/KTOR-4187)) +* Behaviour of ApplicationEngine start method not documented properly ([KTOR-2271](https://youtrack.jetbrains.com/issue/KTOR-2271)) +* CORS plugin should be route scoped ([KTOR-4157](https://youtrack.jetbrains.com/issue/KTOR-4157)) +* Raw Web Socket Connection Suspending Forever ([KTOR-4166](https://youtrack.jetbrains.com/issue/KTOR-4166)) +* StatusPages: SerializationException isn't handled when CallID plugin is installed after StatusPages plugin ([KTOR-4155](https://youtrack.jetbrains.com/issue/KTOR-4155)) +* HttpClient.wss defaults to port 80 instead of 443 ([KTOR-4175](https://youtrack.jetbrains.com/issue/KTOR-4175)) +* Missing subject parameter in StatusPages `status` config method ([KTOR-4191](https://youtrack.jetbrains.com/issue/KTOR-4191)) +* ConditionalHeaders cause the Last-Modified header appears twice in a response (2.0.0) ([KTOR-4163](https://youtrack.jetbrains.com/issue/KTOR-4163)) +* DefaultHeaders: The Server header appears twice in a response (2.0.0) ([KTOR-4152](https://youtrack.jetbrains.com/issue/KTOR-4152)) +* Testing: Resolving a substitution to a value in default config fails when custom HOCON config is used ([KTOR-4130](https://youtrack.jetbrains.com/issue/KTOR-4130)) +* Combination of HttpCache and Logging plugins cause receiving incomplete response body for chunked replies ([KTOR-3916](https://youtrack.jetbrains.com/issue/KTOR-3916)) + +* # 2.0.0 +> Published 11 April 2022 + +* HttpClient breaks permanently when certain exceptions occur while consuming ByteReadChannel ([KTOR-3140](https://youtrack.jetbrains.com/issue/KTOR-3140)) +* Fix Dokka publication for 2.0.0 ([KTOR-4194](https://youtrack.jetbrains.com/issue/KTOR-4194)) +* [Doc] invalid KDoc link for https://ktor.io/docs/http-client-engines.html#darwin ([KTOR-4165](https://youtrack.jetbrains.com/issue/KTOR-4165)) +* Update the 'Manual Configuration' help link after the 2.0.0 release ([KTOR-3678](https://youtrack.jetbrains.com/issue/KTOR-3678)) +* Where did 1.6.8 docs go? ([KTOR-4147](https://youtrack.jetbrains.com/issue/KTOR-4147)) +* Fail to create response observer in different native thread. ([KTOR-3278](https://youtrack.jetbrains.com/issue/KTOR-3278)) +* "Ktor app with Kotlin/Native fails with ""There is no event loop. Use runBlocking { ... } to start one.""" ([KTOR-4149](https://youtrack.jetbrains.com/issue/KTOR-4149)) +* Update limitations for Kotlin/Native ([KTOR-4143](https://youtrack.jetbrains.com/issue/KTOR-4143)) +* UDP sockets on native ([KTOR-1159](https://youtrack.jetbrains.com/issue/KTOR-1159)) +* Ktor stopped working with latest Tomcat 9.0.39 ([KTOR-1172](https://youtrack.jetbrains.com/issue/KTOR-1172)) +* Update to Kotlin 1.6.20 ([KTOR-4107](https://youtrack.jetbrains.com/issue/KTOR-4107)) +* ContentNegotiation: the plugin removes Content-Type header even when a matching registration is not found ([KTOR-4091](https://youtrack.jetbrains.com/issue/KTOR-4091)) +* JMXReporter not included in ktor-metrics:1.6.8 ([KTOR-4102](https://youtrack.jetbrains.com/issue/KTOR-4102)) +* Performance Issue / Ktor & Netty ([KTOR-610](https://youtrack.jetbrains.com/issue/KTOR-610)) +* httpMethod is not affected by X-Http-Method-Override (in opposite to docs) ([KTOR-404](https://youtrack.jetbrains.com/issue/KTOR-404)) +* Android: Failed resolution of: Ljava/nio/file/Paths using API 25 and lower ([KTOR-3269](https://youtrack.jetbrains.com/issue/KTOR-3269)) +* ContentNegotiation plugins don't accept null-responses from ContentConverts ([KTOR-3346](https://youtrack.jetbrains.com/issue/KTOR-3346)) +* Using proguard and CallLogging feature causes JVM crashes ([KTOR-3345](https://youtrack.jetbrains.com/issue/KTOR-3345)) +* Remove checking body transformation from ContentNegotation ([KTOR-3272](https://youtrack.jetbrains.com/issue/KTOR-3272)) +* Feature: Use websockets with serialization ([KTOR-423](https://youtrack.jetbrains.com/issue/KTOR-423)) +* Fix `testErrorHandling` with JS ([KTOR-3510](https://youtrack.jetbrains.com/issue/KTOR-3510)) +* [netty] Headers are only flushed after first byte is written ([KTOR-3364](https://youtrack.jetbrains.com/issue/KTOR-3364)) +* AttributeKey instance is identified by its identity instead of its name ([KTOR-3538](https://youtrack.jetbrains.com/issue/KTOR-3538)) +* HttpCookies: parse / in the name of a cookie ([KTOR-3497](https://youtrack.jetbrains.com/issue/KTOR-3497)) +* Returning Thymeleaf fragments from Routes ([KTOR-3624](https://youtrack.jetbrains.com/issue/KTOR-3624)) +* Rewrite Thymeleaf to New Plugins API ([KTOR-3687](https://youtrack.jetbrains.com/issue/KTOR-3687)) +* Rewrite HSTS to new plugins API ([KTOR-3752](https://youtrack.jetbrains.com/issue/KTOR-3752)) +* Rewrite FreeMarker to new Plugins API ([KTOR-3751](https://youtrack.jetbrains.com/issue/KTOR-3751)) +* Rewrite CachingHeaders to New Plugins API ([KTOR-3688](https://youtrack.jetbrains.com/issue/KTOR-3688)) +* Implementation for Single Page Plugin ([KTOR-3635](https://youtrack.jetbrains.com/issue/KTOR-3635)) +* Sockets no longer working on Android since 2.0.0-beta-1 ([KTOR-3659](https://youtrack.jetbrains.com/issue/KTOR-3659)) +* Implementation for Single Page Plugin ([KTOR-3577](https://youtrack.jetbrains.com/issue/KTOR-3577)) +* Content Negotiation: Gson: Should be able to return 400 for badly formatted request. ([KTOR-373](https://youtrack.jetbrains.com/issue/KTOR-373)) +* Rewrite ConditionalHeaders to New Plugins API ([KTOR-3759](https://youtrack.jetbrains.com/issue/KTOR-3759)) +* Single Page Plugin ([KTOR-3531](https://youtrack.jetbrains.com/issue/KTOR-3531)) +* HttpResponseValidator.handleResponseException should have access to request to provide valuable information in exceptions ([KTOR-3652](https://youtrack.jetbrains.com/issue/KTOR-3652)) +* Build in feature for Single PAge Applications ([KTOR-515](https://youtrack.jetbrains.com/issue/KTOR-515)) +* "ContentNegotiation: The ""charset=UTF-8"" part is added for the Content-Type header" ([KTOR-3799](https://youtrack.jetbrains.com/issue/KTOR-3799)) +* Rewrite Netty Engine ([KTOR-3467](https://youtrack.jetbrains.com/issue/KTOR-3467)) +* SinglePageApplication plugin returns 404 for non-existent paths ([KTOR-3944](https://youtrack.jetbrains.com/issue/KTOR-3944)) +* Split packages in KTOR Client 2.00-BETA-1 ([KTOR-4106](https://youtrack.jetbrains.com/issue/KTOR-4106)) +* Support WebSockets in Darwin engine ([KTOR-4093](https://youtrack.jetbrains.com/issue/KTOR-4093)) +* Ktor http client with java engine uses incorrect timeout. ([KTOR-4058](https://youtrack.jetbrains.com/issue/KTOR-4058)) +* ktor-client performance ([KTOR-506](https://youtrack.jetbrains.com/issue/KTOR-506)) +* InvalidPathException in ApplicationEngineEnvironmentReloading ([KTOR-3831](https://youtrack.jetbrains.com/issue/KTOR-3831)) +* "Screenshot with the new project wizard on the ""Create a new project"" topic is outdated" ([KTOR-4020](https://youtrack.jetbrains.com/issue/KTOR-4020)) +* Add possibility to fully configure metricName in ktor-server-metrics-micrometer ([KTOR-3302](https://youtrack.jetbrains.com/issue/KTOR-3302)) +* Adding Native support to ktor-server-html-builder for 2.0.0 release ([KTOR-3972](https://youtrack.jetbrains.com/issue/KTOR-3972)) +* Ktor: Allow overriding coroutine dispatcher in MockEngine ([KTOR-3230](https://youtrack.jetbrains.com/issue/KTOR-3230)) +* HttpClient request hangs when Logging plugin is installed ([KTOR-3970](https://youtrack.jetbrains.com/issue/KTOR-3970)) +* Ktor uses too much memory compared to other Http server libraries ([KTOR-3903](https://youtrack.jetbrains.com/issue/KTOR-3903)) +* [client] MPP WebSockets client ([KTOR-751](https://youtrack.jetbrains.com/issue/KTOR-751)) +* Native websocket client support ([KTOR-599](https://youtrack.jetbrains.com/issue/KTOR-599)) +* Don't perform migrations for MPP projects ([KTOR-3812](https://youtrack.jetbrains.com/issue/KTOR-3812)) +* Change visibility from internal to public to HttpResponse and HttpClientCall ([KTOR-3984](https://youtrack.jetbrains.com/issue/KTOR-3984)) +* Rename the 'header' function to 'allowHeader' for consistency with similar functions ([KTOR-3980](https://youtrack.jetbrains.com/issue/KTOR-3980)) +* The CallID plugin missing in a New Project wizard ([KTOR-2911](https://youtrack.jetbrains.com/issue/KTOR-2911)) +* IDEA plugin missing the Session authentication ([KTOR-3359](https://youtrack.jetbrains.com/issue/KTOR-3359)) +* Install plugin completion doesn't work with custom built version of Ktor from main ([KTOR-4031](https://youtrack.jetbrains.com/issue/KTOR-4031)) +* Memory leak when Compression plugin is installed ([KTOR-4028](https://youtrack.jetbrains.com/issue/KTOR-4028)) +* Make most useful hooks public ([KTOR-3797](https://youtrack.jetbrains.com/issue/KTOR-3797)) +* The ShutDownUrl sample doesn't work in the latest EAP ([KTOR-4025](https://youtrack.jetbrains.com/issue/KTOR-4025)) +* OAuth: scopes are separated by + that's encoded to %2B ([KTOR-3945](https://youtrack.jetbrains.com/issue/KTOR-3945)) +* The Caching headers plugin stops working in the latest EAP ([KTOR-4022](https://youtrack.jetbrains.com/issue/KTOR-4022)) +* The 'allowHeadersPrefixed' and 'allowHeaders' CORS functions works incorrectly ([KTOR-3979](https://youtrack.jetbrains.com/issue/KTOR-3979)) +* Migrate Generator to New Testing API ([KTOR-3763](https://youtrack.jetbrains.com/issue/KTOR-3763)) +* Support receiving OAuth code response as form post ([KTOR-3342](https://youtrack.jetbrains.com/issue/KTOR-3342)) +* Ktor test websocket call hangs ([KTOR-4000](https://youtrack.jetbrains.com/issue/KTOR-4000)) +* Implementation for Create `ktor-test` module with mocks of engine and clients for writing tests ([KTOR-3236](https://youtrack.jetbrains.com/issue/KTOR-3236)) +* Remove mutex from call logging ([KTOR-3987](https://youtrack.jetbrains.com/issue/KTOR-3987)) +* Add jte template support ([KTOR-3749](https://youtrack.jetbrains.com/issue/KTOR-3749)) +* No contextual serializers when KotlinxSerializationConverter is used ([KTOR-3782](https://youtrack.jetbrains.com/issue/KTOR-3782)) +* Add support for list size methods in PlaceholderList ([KTOR-3940](https://youtrack.jetbrains.com/issue/KTOR-3940)) +* Missing headers in OutgoingContent ([KTOR-3758](https://youtrack.jetbrains.com/issue/KTOR-3758)) +* ResponseObserver does not respect MDC context ([KTOR-2435](https://youtrack.jetbrains.com/issue/KTOR-2435)) +* Binary compatibility issue with ktor-2.0.0-beta1 when using JDK 1.8 ([KTOR-3645](https://youtrack.jetbrains.com/issue/KTOR-3645)) +* Enhance api for ConditionalHeaders usage ([KTOR-728](https://youtrack.jetbrains.com/issue/KTOR-728)) +* localization issue with new project wizard - plugin page ([KTOR-3943](https://youtrack.jetbrains.com/issue/KTOR-3943)) +* IDE action to migrate to 2.0.0 ([KTOR-3225](https://youtrack.jetbrains.com/issue/KTOR-3225)) +* Add colors to CLI client ([KTOR-3929](https://youtrack.jetbrains.com/issue/KTOR-3929)) +* Support macOs M1 in CLI generator ([KTOR-3922](https://youtrack.jetbrains.com/issue/KTOR-3922)) +* Bearer Auth: refreshTokens callback blocks indefinitely when server returns 401 ([KTOR-3795](https://youtrack.jetbrains.com/issue/KTOR-3795)) +* "ContentEncoding: ""Unexpected EOF: expected 10 more bytes"" when trying to decode HEAD response" ([KTOR-3781](https://youtrack.jetbrains.com/issue/KTOR-3781)) +* Memory leak in ktor-client-curl ([KTOR-3767](https://youtrack.jetbrains.com/issue/KTOR-3767)) +* Rename ApplicationPlugin to BaseApplicationPlugin ([KTOR-3873](https://youtrack.jetbrains.com/issue/KTOR-3873)) +* Ktor Server and double receive break receiving of big files ([KTOR-3832](https://youtrack.jetbrains.com/issue/KTOR-3832)) +* Setting Content-Length Header manually when using call.respondOutputStream ([KTOR-560](https://youtrack.jetbrains.com/issue/KTOR-560)) +* Support for adding values to the MDC later on in the pipeline. ([KTOR-536](https://youtrack.jetbrains.com/issue/KTOR-536)) +* Default request: Query parameters in default URL are overwritten ([KTOR-3793](https://youtrack.jetbrains.com/issue/KTOR-3793)) +* Timeout in receiving streaming body breaks client ([KTOR-3704](https://youtrack.jetbrains.com/issue/KTOR-3704)) +* Setting DefaultRequest.url.protocol on the client side breaks the ability to establish a ws connection ([KTOR-3890](https://youtrack.jetbrains.com/issue/KTOR-3890)) +* Rename the 'io.ktor.resources.serialisation' package to '...serialization' for consistency ([KTOR-3842](https://youtrack.jetbrains.com/issue/KTOR-3842)) +* Generator performance: cache Maven requests ([KTOR-3866](https://youtrack.jetbrains.com/issue/KTOR-3866)) +* JS: Websocket errors are not being handled correctly ([KTOR-1726](https://youtrack.jetbrains.com/issue/KTOR-1726)) +* Logback transient depencency from ktor-server-test-host ([KTOR-2038](https://youtrack.jetbrains.com/issue/KTOR-2038)) +* Ktor plugin is asking to migrate to EAP versions ([KTOR-3609](https://youtrack.jetbrains.com/issue/KTOR-3609)) +* "Module ""io.ktor:ktor-network (io.ktor:ktor-network-iosarm64)"" has a reference to symbol kotlinx.coroutines/SingleThreadDispatcher|null[0]" ([KTOR-3562](https://youtrack.jetbrains.com/issue/KTOR-3562)) +* Retry on HttpCode or network error ([KTOR-572](https://youtrack.jetbrains.com/issue/KTOR-572)) +* Server hangs indefinitely when responding to requests on android using version 2.0.0 ([KTOR-3653](https://youtrack.jetbrains.com/issue/KTOR-3653)) +* IllegalStateException when writing in coroutine context backed by more than one thread ([KTOR-3801](https://youtrack.jetbrains.com/issue/KTOR-3801)) +* References for kotlinx.serialization plugin sample code in a new Ktor project created with Maven build system are unresolved ([KTOR-3754](https://youtrack.jetbrains.com/issue/KTOR-3754)) +* multipart/form-data requests: No way of streaming data asynchronously ([KTOR-3825](https://youtrack.jetbrains.com/issue/KTOR-3825)) +* Migrate ForwardHeaderSupport to new API ([KTOR-3677](https://youtrack.jetbrains.com/issue/KTOR-3677)) +* Sort endpoints in Endpoint view and when creating tests ([KTOR-3725](https://youtrack.jetbrains.com/issue/KTOR-3725)) +* StackOverflowError when opening Enpoints view with local Routing function ([KTOR-3816](https://youtrack.jetbrains.com/issue/KTOR-3816)) +* Provide an example how to use new MultiPartFormDataContent (#KTOR-325) ([KTOR-3549](https://youtrack.jetbrains.com/issue/KTOR-3549)) +* Client docs for desktop are misleading ([KTOR-3813](https://youtrack.jetbrains.com/issue/KTOR-3813)) +* When working with SessionStorage, write is called every time after read ([KTOR-3336](https://youtrack.jetbrains.com/issue/KTOR-3336)) +* DefaultRequest API doc contains missing members ([KTOR-3800](https://youtrack.jetbrains.com/issue/KTOR-3800)) +* testApplication: Add https EngineConnector ([KTOR-3810](https://youtrack.jetbrains.com/issue/KTOR-3810)) +* Rewrite HttpsRedirect to New Plugins API ([KTOR-3668](https://youtrack.jetbrains.com/issue/KTOR-3668)) +* Rewrite WebJars to New Plugins API ([KTOR-3667](https://youtrack.jetbrains.com/issue/KTOR-3667)) +* Rewrite Metrics to New Plugins API ([KTOR-3666](https://youtrack.jetbrains.com/issue/KTOR-3666)) +* Rewrite PartialContent to New Plugins API ([KTOR-3665](https://youtrack.jetbrains.com/issue/KTOR-3665)) +* Rewrite CallId to New Plugins API ([KTOR-3352](https://youtrack.jetbrains.com/issue/KTOR-3352)) +* Drop Before/After from new plugins API ([KTOR-3803](https://youtrack.jetbrains.com/issue/KTOR-3803)) +* Performance: Don't store PSI elements in Ktor Url Mappings. Use Smart Reference or PSI Anchor, instead ([KTOR-3789](https://youtrack.jetbrains.com/issue/KTOR-3789)) +* Infrastructure: Build with JDK 11 for all modules fails: Can't inline metric micrometer because it uses jvm target 8 ([KTOR-3712](https://youtrack.jetbrains.com/issue/KTOR-3712)) +* The 'refreshTokens' callback isn't invoked when an API returns a 401 response without the 'WWW-Authenticate' header ([KTOR-3516](https://youtrack.jetbrains.com/issue/KTOR-3516)) +* Add DslMarker to testApplication builder ([KTOR-3783](https://youtrack.jetbrains.com/issue/KTOR-3783)) +* Prohibit Nesting of `install` Blocks for Client and Server Configuration ([KTOR-3333](https://youtrack.jetbrains.com/issue/KTOR-3333)) +* In docs and generated Gradle, Prometheus is misspelled as Promteteus ([KTOR-3792](https://youtrack.jetbrains.com/issue/KTOR-3792)) +* submitFormWithBinaryData: mutation attempt of frozen @194c6a8 ([KTOR-2947](https://youtrack.jetbrains.com/issue/KTOR-2947)) +* iOS: Failed to find HttpClientEngineContainer with new native memory model ([KTOR-3517](https://youtrack.jetbrains.com/issue/KTOR-3517)) +* Rewrite CallLogging to new plugins API ([KTOR-3351](https://youtrack.jetbrains.com/issue/KTOR-3351)) +* Drop @ExperimentalTime ([KTOR-3595](https://youtrack.jetbrains.com/issue/KTOR-3595)) +* Using any Suspend or Coroutine function in Bearer Auth functions cause crash on iOS ([KTOR-3177](https://youtrack.jetbrains.com/issue/KTOR-3177)) +* [iOS] InvalidMutabilityException: mutation attempt of frozen ([KTOR-1223](https://youtrack.jetbrains.com/issue/KTOR-1223)) +* InvalidMutabilityException: Configuration issues for ios ([KTOR-1251](https://youtrack.jetbrains.com/issue/KTOR-1251)) +* iOS testing MockEngine issue ([KTOR-1541](https://youtrack.jetbrains.com/issue/KTOR-1541)) +* """InvalidMutabilityException: Frozen during lazy computation"" when using by lazy for HttpClient" ([KTOR-1087](https://youtrack.jetbrains.com/issue/KTOR-1087)) +* kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen kotlin.collections on iOS when deserializing class that contains less properties than the json ([KTOR-2740](https://youtrack.jetbrains.com/issue/KTOR-2740)) +* Native: Cannot mutate objects inside onDownload and onUpload lambdas ([KTOR-3068](https://youtrack.jetbrains.com/issue/KTOR-3068)) +* "HttpClient / native: ""mutation attempt of frozen"" crash when configuring the client" ([KTOR-1628](https://youtrack.jetbrains.com/issue/KTOR-1628)) +* Ktor Kotlin Multiplatform leak ([KTOR-3586](https://youtrack.jetbrains.com/issue/KTOR-3586)) +* Put label to local history before performing migration in Ktor ([KTOR-3716](https://youtrack.jetbrains.com/issue/KTOR-3716)) +* StatusPages plugin continues call after calling handler ([KTOR-3707](https://youtrack.jetbrains.com/issue/KTOR-3707)) +* StatusPages not returning code 500 on catched exception ([KTOR-3721](https://youtrack.jetbrains.com/issue/KTOR-3721)) +* Rewrite Compression to New Plugins API ([KTOR-3661](https://youtrack.jetbrains.com/issue/KTOR-3661)) +* Rewrite Auto Head to New Plugins API ([KTOR-3670](https://youtrack.jetbrains.com/issue/KTOR-3670)) +* Rewrite DoubleReceive to New Plugins API ([KTOR-3672](https://youtrack.jetbrains.com/issue/KTOR-3672)) +* Make default charset UTF-8 when using `receiveText` for application/json request ([KTOR-789](https://youtrack.jetbrains.com/issue/KTOR-789)) +* Rewrite CORS to New Plugins API ([KTOR-3663](https://youtrack.jetbrains.com/issue/KTOR-3663)) +* Rewrite Auth to New Plugins API ([KTOR-3660](https://youtrack.jetbrains.com/issue/KTOR-3660)) +* Rewrite Sessions to New Plugins API ([KTOR-3664](https://youtrack.jetbrains.com/issue/KTOR-3664)) +* Rewrite ContentNegotiation to New Plugins API ([KTOR-3669](https://youtrack.jetbrains.com/issue/KTOR-3669)) +* Rewrite MethodOverride to New Plugins API ([KTOR-3662](https://youtrack.jetbrains.com/issue/KTOR-3662)) +* Client logging: no description of default loggers' behavior on different platforms ([KTOR-3421](https://youtrack.jetbrains.com/issue/KTOR-3421)) +* Update logback and slf4j ([KTOR-3733](https://youtrack.jetbrains.com/issue/KTOR-3733)) +* NoClassDefFoundError is thrown on Android because ktor-utils references a not supported Java API ([KTOR-3690](https://youtrack.jetbrains.com/issue/KTOR-3690)) +* Ktor-Utils references a Java API not supported by Android ([KTOR-3426](https://youtrack.jetbrains.com/issue/KTOR-3426)) +* Migrate plugins to multiplatform ([KTOR-3539](https://youtrack.jetbrains.com/issue/KTOR-3539)) +* ByteBufferChannel leaves unflushed data after partial readAvailable causing Apache client request to stall ([KTOR-3730](https://youtrack.jetbrains.com/issue/KTOR-3730)) +* Migrate DefaultHeaders to new API ([KTOR-3676](https://youtrack.jetbrains.com/issue/KTOR-3676)) +* ByteReadPacket.headerSizeHint is unused ([KTOR-3632](https://youtrack.jetbrains.com/issue/KTOR-3632)) +* Hooks don't work with routing scoped plugins ([KTOR-3740](https://youtrack.jetbrains.com/issue/KTOR-3740)) +* Client request builder: add shortcuts for authentication headers ([KTOR-2876](https://youtrack.jetbrains.com/issue/KTOR-2876)) +* Pull Request - KTOR-404 Introduce support for X-Http-Method-Override ([KTOR-1825](https://youtrack.jetbrains.com/issue/KTOR-1825)) +* Can't set a base url that includes path data ([KTOR-730](https://youtrack.jetbrains.com/issue/KTOR-730)) +* Mention about closing ActorSelector manager ([KTOR-269](https://youtrack.jetbrains.com/issue/KTOR-269)) +* Migrate to new kotlinx.coroutines and `limited` dispatcher(revert corePoolSize option) ([KTOR-3463](https://youtrack.jetbrains.com/issue/KTOR-3463)) +* Routing is called for handled requests ([KTOR-3732](https://youtrack.jetbrains.com/issue/KTOR-3732)) +* TomCat Documentation ([KTOR-2395](https://youtrack.jetbrains.com/issue/KTOR-2395)) +* default resource package don't work ([KTOR-3722](https://youtrack.jetbrains.com/issue/KTOR-3722)) +* webSocketSession method suspends indefinitely when there in connection error (Ktor beta) ([KTOR-3654](https://youtrack.jetbrains.com/issue/KTOR-3654)) +* FUS metrics in IDE ([KTOR-2775](https://youtrack.jetbrains.com/issue/KTOR-2775)) +* Update Documentation and Code for DoubleReceive Feature ([KTOR-1876](https://youtrack.jetbrains.com/issue/KTOR-1876)) +* Add Defaults for the server.stop Method ([KTOR-3505](https://youtrack.jetbrains.com/issue/KTOR-3505)) +* HTTP/2 not working with Netty ([KTOR-3705](https://youtrack.jetbrains.com/issue/KTOR-3705)) +* Include changes from hands-on PR: Update 03_customer-routes.md #120 ([KTOR-3713](https://youtrack.jetbrains.com/issue/KTOR-3713)) +* Nested routing fails to match route ([KTOR-1626](https://youtrack.jetbrains.com/issue/KTOR-1626)) +* URLBuilder from string with trailing slash or from `Url` with no trailing slash, produces double slash when appending segments ([KTOR-3618](https://youtrack.jetbrains.com/issue/KTOR-3618)) +* Provide the capability to generate WebSocket tests ([KTOR-3061](https://youtrack.jetbrains.com/issue/KTOR-3061)) +* Add modulepath support for Java >= 9 ([KTOR-619](https://youtrack.jetbrains.com/issue/KTOR-619)) +* HttpRequestRetry plugin expects Retry-After header value to be in milliseconds ([KTOR-3634](https://youtrack.jetbrains.com/issue/KTOR-3634)) +* StringValuesBuilder.appendIfNameAbsent appends only if name is already present ([KTOR-3650](https://youtrack.jetbrains.com/issue/KTOR-3650)) +* Migrations of the client code are not working for queries with non-trivial expression body ([KTOR-3703](https://youtrack.jetbrains.com/issue/KTOR-3703)) +* Curl Cinterop compilation is failed on MacOS ([KTOR-3681](https://youtrack.jetbrains.com/issue/KTOR-3681)) +* Compression slow due to using BEST_COMPRESSION for deflate/gzip ([KTOR-3680](https://youtrack.jetbrains.com/issue/KTOR-3680)) +* Could not resolve: io.ktor:ktor-locations:2.0.0-beta-1 on a new project created with IDEA 2021.3.1 ([KTOR-3639](https://youtrack.jetbrains.com/issue/KTOR-3639)) +* Update URL for the 'Adding Ktor dependencies' topic and add redirects ([KTOR-3673](https://youtrack.jetbrains.com/issue/KTOR-3673)) +* Support package split in Ktor migrations in plugin (java modules support) ([KTOR-3679](https://youtrack.jetbrains.com/issue/KTOR-3679)) +* Rewrite StatusPages with the new plugins API ([KTOR-3312](https://youtrack.jetbrains.com/issue/KTOR-3312)) +* "Save ""Create Run Configuration automatically"" within .idea directory" ([KTOR-3282](https://youtrack.jetbrains.com/issue/KTOR-3282)) +* java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer when Ktor is built with JDK 9+ ([KTOR-1398](https://youtrack.jetbrains.com/issue/KTOR-1398)) +* TestHttpClientEngine doesn't support HTTPS requests ([KTOR-3614](https://youtrack.jetbrains.com/issue/KTOR-3614)) +* Endpoints view: Endpoints not populated if routes require authentication ([KTOR-3182](https://youtrack.jetbrains.com/issue/KTOR-3182)) +* Insecure user session samples in documentation ([KTOR-3582](https://youtrack.jetbrains.com/issue/KTOR-3582)) +* HttpRequestTimeoutException should not inherit CancellationException in ktor http client ([KTOR-3192](https://youtrack.jetbrains.com/issue/KTOR-3192)) +* Update Documentation and Code for HSTS Feature ([KTOR-1878](https://youtrack.jetbrains.com/issue/KTOR-1878)) +* Reduce the number of versions displayed in a plugin ([KTOR-3250](https://youtrack.jetbrains.com/issue/KTOR-3250)) +* Update Documentation and Code for Webjars Feature ([KTOR-1885](https://youtrack.jetbrains.com/issue/KTOR-1885)) +* XForwardedHeaderSupport should let you specify which index (from end) to choose ([KTOR-565](https://youtrack.jetbrains.com/issue/KTOR-565)) +* Make migrations more configurable ([KTOR-3617](https://youtrack.jetbrains.com/issue/KTOR-3617)) +* EAP Naming: main-number conflicts with dependencies ([KTOR-2724](https://youtrack.jetbrains.com/issue/KTOR-2724)) +* ktor.io/learn typo ([KTOR-3563](https://youtrack.jetbrains.com/issue/KTOR-3563)) +* Update Documentation and Code for HttpsRedirect Feature ([KTOR-1879](https://youtrack.jetbrains.com/issue/KTOR-1879)) +* Provide better support for Ktor clients ([KTOR-883](https://youtrack.jetbrains.com/issue/KTOR-883)) +* Multiple messages around upgrading to new version ([KTOR-3494](https://youtrack.jetbrains.com/issue/KTOR-3494)) +* HttpRequestRetry in KTOR 2.0 should allow for request altering between retries ([KTOR-3544](https://youtrack.jetbrains.com/issue/KTOR-3544)) +* Deploy Ktor application to docker topic contains hard coded project name ([KTOR-2852](https://youtrack.jetbrains.com/issue/KTOR-2852)) +* Improvements for Docker sample in documentation ([KTOR-3294](https://youtrack.jetbrains.com/issue/KTOR-3294)) +* """io.ktor.serializaion.gson"" - package naming in 2.0" ([KTOR-3527](https://youtrack.jetbrains.com/issue/KTOR-3527)) +* Drop `client.get` Operator Because of Ambiguity with `get(URL)` ([KTOR-3487](https://youtrack.jetbrains.com/issue/KTOR-3487)) +* "Option ""Add imports for Ktor modules automatically"" doesn't work" ([KTOR-3226](https://youtrack.jetbrains.com/issue/KTOR-3226)) +* Migrations are unavailable ([KTOR-3570](https://youtrack.jetbrains.com/issue/KTOR-3570)) +* Pull Request - fix #1970 - update MultiPartFormDataContent to allow contentType override using optional builder ([KTOR-1833](https://youtrack.jetbrains.com/issue/KTOR-1833)) +* Pull Request - KTOR-1264 - Add UUID to DefaultConversionService ([KTOR-1815](https://youtrack.jetbrains.com/issue/KTOR-1815)) +* Pull Request - Intercept pipeline at Setup phase for XForwardedHeaderSupport feature… ([KTOR-1844](https://youtrack.jetbrains.com/issue/KTOR-1844)) +* Pull Request - Add locale to ThymeleafContent ([KTOR-1838](https://youtrack.jetbrains.com/issue/KTOR-1838)) +* Objections to changing boundary to internal on MultiPartFormDataContent? ([KTOR-325](https://youtrack.jetbrains.com/issue/KTOR-325)) +* Fix Log Size for Java 11 Windows Build ([KTOR-3535](https://youtrack.jetbrains.com/issue/KTOR-3535)) +* ByteChannelSequential freezes after closing due to race condition ([KTOR-2776](https://youtrack.jetbrains.com/issue/KTOR-2776)) +* Apple Arm: 'Resolving NPM dependencies using yarn' returns 139 ([KTOR-3561](https://youtrack.jetbrains.com/issue/KTOR-3561)) +* Change log level from `INFO` to `ERROR` for tests only ([KTOR-3466](https://youtrack.jetbrains.com/issue/KTOR-3466)) +* Responding without contentLength freezes on CIO native ([KTOR-3492](https://youtrack.jetbrains.com/issue/KTOR-3492)) +* webSocketSession freeze every time ([KTOR-3460](https://youtrack.jetbrains.com/issue/KTOR-3460)) +* Exceptions are Swallowed in `HttpClient.wss` block ([KTOR-3461](https://youtrack.jetbrains.com/issue/KTOR-3461)) +* Support receiving headers before sending body in CIO client engine ([KTOR-3491](https://youtrack.jetbrains.com/issue/KTOR-3491)) +* Build and test on Apple Silicon Arm ([KTOR-3248](https://youtrack.jetbrains.com/issue/KTOR-3248)) +* Prototype anchors in new plugins API ([KTOR-3392](https://youtrack.jetbrains.com/issue/KTOR-3392)) +* Rename the 'Ios' client engine to more generic term to cover all Apple operating systems ([KTOR-3394](https://youtrack.jetbrains.com/issue/KTOR-3394)) +* Update Samples to Ktor 2.0 ([KTOR-3218](https://youtrack.jetbrains.com/issue/KTOR-3218)) +* Implement new `Locations` feature ([KTOR-1706](https://youtrack.jetbrains.com/issue/KTOR-1706)) +* Fix old metadata publication ([KTOR-3469](https://youtrack.jetbrains.com/issue/KTOR-3469)) +* JS Client doesn't support ServiceWorker ([KTOR-3448](https://youtrack.jetbrains.com/issue/KTOR-3448)) +* Move Server Related Code from `ktor-http-cio` to `ktor-server-cio` ([KTOR-3462](https://youtrack.jetbrains.com/issue/KTOR-3462)) +* Add Check if Feature is installed for `WebSocket` builders ([KTOR-3459](https://youtrack.jetbrains.com/issue/KTOR-3459)) +* With test application should load environment from the `application.conf` ([KTOR-2794](https://youtrack.jetbrains.com/issue/KTOR-2794)) +* TestEngineApplication - implement HttpClient API ([KTOR-2416](https://youtrack.jetbrains.com/issue/KTOR-2416)) +* Inconsistent TestApplicationRequest and Client HttpRequestBuilder API's ([KTOR-1246](https://youtrack.jetbrains.com/issue/KTOR-1246)) +* Server features instead of client in the client `install` block ([KTOR-3412](https://youtrack.jetbrains.com/issue/KTOR-3412)) +* `ContentNegotiation` is missing in the plugins completion window ([KTOR-3411](https://youtrack.jetbrains.com/issue/KTOR-3411)) +* Code Snippets use Groovy in build files as opposed to default Kotlin option for Wizard ([KTOR-2190](https://youtrack.jetbrains.com/issue/KTOR-2190)) +* Improve documentation for native/Apple client engines ([KTOR-3375](https://youtrack.jetbrains.com/issue/KTOR-3375)) +* IJ locked after attempt to create new run config in a dialog ([KTOR-3385](https://youtrack.jetbrains.com/issue/KTOR-3385)) +* "High CPU consumption/Lock after project opening in org.jetbrains.kotlin.storage.getValue ; org.jetbrains.kotlin.idea.caches.resolve.IdeaResolverForProject" ([KTOR-3337](https://youtrack.jetbrains.com/issue/KTOR-3337)) +* Update Ktor Plugin Description ([KTOR-3388](https://youtrack.jetbrains.com/issue/KTOR-3388)) +* Add explicit menu action for migration ([KTOR-3400](https://youtrack.jetbrains.com/issue/KTOR-3400)) +* Project Generated with eap-256 has Errors in Imports ([KTOR-3397](https://youtrack.jetbrains.com/issue/KTOR-3397)) +* Update non-generic samples to 2.0 ([KTOR-3285](https://youtrack.jetbrains.com/issue/KTOR-3285)) +* Support New Native Memory Model ([KTOR-3217](https://youtrack.jetbrains.com/issue/KTOR-3217)) +* Simplify plugin descriptions in wizard, remove empty options ([KTOR-3386](https://youtrack.jetbrains.com/issue/KTOR-3386)) +* Server for Kotlin Native ([KTOR-746](https://youtrack.jetbrains.com/issue/KTOR-746)) +* call.request.queryParameters decode plus as space ([KTOR-3297](https://youtrack.jetbrains.com/issue/KTOR-3297)) +* Migrate existing plugins to RoutingScoped ([KTOR-3201](https://youtrack.jetbrains.com/issue/KTOR-3201)) +* Bearer Authentication: Queue requests until refresh of tokens is completed ([KTOR-3325](https://youtrack.jetbrains.com/issue/KTOR-3325)) +* Article about storing sensitive data and accessing it in application.conf ([KTOR-3340](https://youtrack.jetbrains.com/issue/KTOR-3340)) +* Add parameter for specifying content-length in ApplicationCall#respondBytes ([KTOR-3087](https://youtrack.jetbrains.com/issue/KTOR-3087)) +* Update Documentation and Code for CallId Feature ([KTOR-1874](https://youtrack.jetbrains.com/issue/KTOR-1874)) +* Passing port 0 to start server on random port doesn't publish correct port to log ([KTOR-3288](https://youtrack.jetbrains.com/issue/KTOR-3288)) +* Allow application environment configuration when running via commandLineEnvironment ([KTOR-3027](https://youtrack.jetbrains.com/issue/KTOR-3027)) +* XForwardedHeaderSupport is installed late in the pipeline ([KTOR-731](https://youtrack.jetbrains.com/issue/KTOR-731)) +* Add locale to ThymeleafContent ([KTOR-3313](https://youtrack.jetbrains.com/issue/KTOR-3313)) +* Add support for ports in withTestApplication ([KTOR-725](https://youtrack.jetbrains.com/issue/KTOR-725)) +* Error in 2.0 doc/sample for HttpClient retry ([KTOR-3303](https://youtrack.jetbrains.com/issue/KTOR-3303)) +* Cyclic dependency issue in latest 2.0 (main branch) ([KTOR-3240](https://youtrack.jetbrains.com/issue/KTOR-3240)) +* An error occurred when running a sample with the configured XML serializer ([KTOR-3286](https://youtrack.jetbrains.com/issue/KTOR-3286)) +* respondOutputStream behind nginx fails ([KTOR-346](https://youtrack.jetbrains.com/issue/KTOR-346)) +* XML Support in Ktor ([KTOR-489](https://youtrack.jetbrains.com/issue/KTOR-489)) +* Start ktor server on random port ([KTOR-686](https://youtrack.jetbrains.com/issue/KTOR-686)) +* ProxyConfig.type checking for DIRECT instead of SOCKS ([KTOR-1733](https://youtrack.jetbrains.com/issue/KTOR-1733)) +* Freeze the screen when I create routes ([KTOR-3004](https://youtrack.jetbrains.com/issue/KTOR-3004)) +* Client: DefaultRequest apply defaults before request builder ([KTOR-2877](https://youtrack.jetbrains.com/issue/KTOR-2877)) +* KDoc: HttpRequestBuilder.header actually appends header value, does not set it ([KTOR-2492](https://youtrack.jetbrains.com/issue/KTOR-2492)) +* parameterOf() should have a variant that takes in a Map> ([KTOR-399](https://youtrack.jetbrains.com/issue/KTOR-399)) +* TLS relared tests are failing on CI ([KTOR-3224](https://youtrack.jetbrains.com/issue/KTOR-3224)) +* [Ktor Client] CborFeature ([KTOR-3174](https://youtrack.jetbrains.com/issue/KTOR-3174)) +* Jackson: receiveOrNull crashes with an exception when sending empty content ([KTOR-727](https://youtrack.jetbrains.com/issue/KTOR-727)) +* Jackson-backed `ApplicationCall.receive` does not throw `ContentTransformationException` ([KTOR-614](https://youtrack.jetbrains.com/issue/KTOR-614)) +* Remove Obsolete Check Cast from SuspendFunctionGun ([KTOR-3178](https://youtrack.jetbrains.com/issue/KTOR-3178)) +* Ktor: Fold internal stack frames for HTTP server ([KTOR-2274](https://youtrack.jetbrains.com/issue/KTOR-2274)) +* Support 2.0.0 in IDE ([KTOR-3196](https://youtrack.jetbrains.com/issue/KTOR-3196)) +* Client HttpCache feature is not documented ([KTOR-1279](https://youtrack.jetbrains.com/issue/KTOR-1279)) +* Feature to Plugin changes in Documentation ([KTOR-2372](https://youtrack.jetbrains.com/issue/KTOR-2372)) +* Update server dependencies and imports in docs for 2.0.0 ([KTOR-3150](https://youtrack.jetbrains.com/issue/KTOR-3150)) +* Add method to Client and ServerResponseException ([KTOR-3128](https://youtrack.jetbrains.com/issue/KTOR-3128)) +* Add UUID to DefaultConversionService ([KTOR-1264](https://youtrack.jetbrains.com/issue/KTOR-1264)) +* Prioritize text found in feature titles over descriptions ([KTOR-2488](https://youtrack.jetbrains.com/issue/KTOR-2488)) +* SerializationException when serializing request body object of generic class type ([KTOR-1019](https://youtrack.jetbrains.com/issue/KTOR-1019)) +* The 'Create test for Ktor module' intention actions changes files from other modules for a multimodule Gradle project ([KTOR-3062](https://youtrack.jetbrains.com/issue/KTOR-3062)) +* Implementation for Simple API for writing features ([KTOR-2480](https://youtrack.jetbrains.com/issue/KTOR-2480)) +* Wizard Plugin listing strange link ([KTOR-2882](https://youtrack.jetbrains.com/issue/KTOR-2882)) +* Add filtering support in Ktor client response interceptor ([KTOR-2992](https://youtrack.jetbrains.com/issue/KTOR-2992)) +* Nothing happens when no test routes is selected when generating Ktor test for module ([KTOR-3095](https://youtrack.jetbrains.com/issue/KTOR-3095)) +* The 'Create test for Ktor module' intention action doesn't create any tests if routes are defined inside the extension function ([KTOR-3079](https://youtrack.jetbrains.com/issue/KTOR-3079)) +* Allow using the client itself inside Auth plugin in the refreshTokens lambda. ([KTOR-2977](https://youtrack.jetbrains.com/issue/KTOR-2977)) +* ADE at io.ktor.ide.plugins.add.KtorMarketplacePluginsUpdater.checkForUpdates ([KTOR-3076](https://youtrack.jetbrains.com/issue/KTOR-3076)) +* Define completion priorities for Ktor keywords ([KTOR-2773](https://youtrack.jetbrains.com/issue/KTOR-2773)) +* Adding features action in IDE ([KTOR-2893](https://youtrack.jetbrains.com/issue/KTOR-2893)) +* Ktor Client JS: request to /example requests http://localhost/example ([KTOR-453](https://youtrack.jetbrains.com/issue/KTOR-453)) +* URLBuilder: Move Default Values to build() function ([KTOR-1345](https://youtrack.jetbrains.com/issue/KTOR-1345)) +* Implement design about moving features from ktor-server-core ([KTOR-1239](https://youtrack.jetbrains.com/issue/KTOR-1239)) +* Move server code to io.ktor.server.* package ([KTOR-2865](https://youtrack.jetbrains.com/issue/KTOR-2865)) +* Impossible to modify response headers ([KTOR-2822](https://youtrack.jetbrains.com/issue/KTOR-2822)) +* ApplicationConfig: how to iterate over keys and values of config ([KTOR-2318](https://youtrack.jetbrains.com/issue/KTOR-2318)) +* Missing Locations params result in 404 instead of 400 ([KTOR-447](https://youtrack.jetbrains.com/issue/KTOR-447)) +* Implementation for Events Feature For Client Metrics ([KTOR-2472](https://youtrack.jetbrains.com/issue/KTOR-2472)) +* Should return 405 when route exists but not for given method instead of 404 ([KTOR-737](https://youtrack.jetbrains.com/issue/KTOR-737)) +* Fix 2.0.0 branch compilation ([KTOR-2603](https://youtrack.jetbrains.com/issue/KTOR-2603)) +* Query of pre-signed URL has been altered after decode and re-encode process ([KTOR-778](https://youtrack.jetbrains.com/issue/KTOR-778)) +* ApplicationCall.locationOrNull raises error ([KTOR-1684](https://youtrack.jetbrains.com/issue/KTOR-1684)) +* ContentConverter.convertForSend should receive a KType ([KTOR-444](https://youtrack.jetbrains.com/issue/KTOR-444)) +* Make `body` nullable for request builder ([KTOR-1400](https://youtrack.jetbrains.com/issue/KTOR-1400)) +* Send 100 Continue response only when getting a request to receive `IncomingContent` ([KTOR-855](https://youtrack.jetbrains.com/issue/KTOR-855)) + # 1.6.8 > Published 14 March 2022 @@ -21,6 +359,7 @@ # 2.0.0-beta-1 > Published 23 December 2021 + * EAP Naming: main-number conflicts with dependencies ([KTOR-2724](https://youtrack.jetbrains.com/issue/KTOR-2724)) * ktor.io/learn typo ([KTOR-3563](https://youtrack.jetbrains.com/issue/KTOR-3563)) * Multiple messages around upgrading to new version ([KTOR-3494](https://youtrack.jetbrains.com/issue/KTOR-3494)) @@ -154,6 +493,7 @@ * Improve documentation for native/Apple client engines ([KTOR-3375](https://youtrack.jetbrains.com/issue/KTOR-3375)) * Update Documentation and Code for CallId Feature ([KTOR-1874](https://youtrack.jetbrains.com/issue/KTOR-1874)) * Feature to Plugin changes in Documentation ([KTOR-2372](https://youtrack.jetbrains.com/issue/KTOR-2372)) + # 1.6.7 > Published 6 December 2021 diff --git a/gradle.properties b/gradle.properties index e57dc5a8b97..7498531a86e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ kotlin.code.style=official # config -version=2.0.1-SNAPSHOT +version=2.0.1 kotlin.incremental.js=true kotlin.incremental.multiplatform=true kotlin.native.ignoreIncorrectDependencies=true