All Versions
60
Latest Version
Avg Release Cycle
29 days
Latest Release
-

Changelog History
Page 1

  • v2.0.2 Changes

    Published 27 May 2022

    • [iOS] Prevent HttpClient from persisting cookies across requests (KTOR-3748)
    • 🌐 Web feedback from "Creating HTTP APIs", https://ktor.io/docs/creating-http-apis.html (KTOR-4380)
    • When returning a String, content negotiation is ignored (KTOR-662)
    • HttpResponse.bodyAsChannel should not be converted by ContentNegotiation (KTOR-4341)
    • Strings are not decoded when received as application/json (KTOR-385)
    • Document how to enable/disable HTTP/2 for different client engines (KTOR-4340)
    • βͺ Revert Dokka to 1.6.10 due to Publication Freeze (KTOR-4290)
    • Document a new memory model in KMM tutorial (KTOR-4354)
    • πŸ“„ Make client docs less JVM-centric (KTOR-4351)
    • Darwin engine: Client connection is closed after each request (KTOR-4145)
    • Ios: NullPointerException when query parameters contain cyrillic symbols in values (KTOR-1858)
    • A native application with the Darwin engine doesn't make a request (KTOR-3900)
    • Darwin and Kotlin/JS: "List has more than one element" error when header like Content-type is duplicated in a response (KTOR-4105)
    • Invalid response without error (KTOR-369)
    • Invalid HTTP version should fail (KTOR-380)
    • The colon after the host parameter requires a port (KTOR-382)
    • βœ… Kotlin/Native: testApplication's client sometimes fails to receive ByteArray response from a route (KTOR-4197)
    • πŸ–¨ "Application started" is never printed (KTOR-4319)
    • 0️⃣ Default request without explicit port sets port 80 for all requests (KTOR-4281)
    • πŸ“š Documentation about how to configure libcurl on Windows (KTOR-3988)
    • πŸ“š API Docs reference RFCs. Better to reference our own documentation (KTOR-3764)
    • πŸ‘€ UninitializedPropertyAccessException in the handleResponseExceptionWithRequest when request or response are accessed through (KTOR-4230)HttpClientCall
    • πŸ‘» The original exception is swallowed by "No request transformation found" exception when request body is serializable object (KTOR-4160)
    • IncorrectDereferenceException when trying to create HttpClient from background thread on iOS (KTOR-4263)
    • JacksonWebsocketContentConverter.deserialize just doesn't work (KTOR-4248)
    • πŸ“š Documentation for migration of Authentication server plugin (KTOR-4253)
    • βž• Add sample for the AuthenticationChecked hook (KTOR-4278)
    • 🐳 Web feedback from "Docker", https://ktor.io/docs/docker.html (KTOR-4282)
    • Route's path parameters are empty when ApplicationCall.authentication is first accessed in a different ApplicationCall context (KTOR-4250)
    • Routes with tailcard should not count for specific http error codes (KTOR-4280)
    • πŸ“š Documentation for appending query parameters for URL in the DefaultRequest (KTOR-4252)
    • Routing returns 405 even for not completely matched paths (KTOR-4267)
    • πŸ— Resources: builder methods return routes with PathSegmentConstantRouteSelector instead of HttpMethodRouteSelector (KTOR-4239)
    • ⚑️ Update Netty to 4.1.77.Final (KTOR-4339)
    • External services should use config from environment (KTOR-4373)
    • ⚑️ Update Jackson to 2.13.3 (KTOR-4394)
  • v2.0.1 Changes

    Published 28 April 2022

    • πŸ›  Fix URL representation (KTOR-4241)
    • embeddedServer for CIO and Netty inconsistency (KTOR-755)
    • ⚑️ Update Coroutines to 1.6.1 (KTOR-4240)
    • πŸ‘ Locations: Support trailing / (KTOR-836)
    • Resources: Make Route.handle public (KTOR-4200)
    • πŸ›  Fix CURL flaky initialization (KTOR-4223)
    • ⚑️ Optimize Slow Native Tests (KTOR-4224)
    • πŸ–¨ Print Native Stacktrace on Timeout (KTOR-4198)
    • ⏱ """IllegalStateException: Operation is already in progress"" when the readByte is called the second time after a timeout" (KTOR-4218)
    • ⚑️ Update Kotlin to 1.6.21 (KTOR-4221)
    • ⚑️ Update code for editing an article in the 'Interactive website' tutorial (KTOR-4227)
    • 0️⃣ DefaultRequest: HTTPS protocol isn't set when using Ktor 2.0.0 (KTOR-4142)
    • 0️⃣ DefaultRequest: host and port aren't used for a request (KTOR-4154)
    • βœ… A table with test methods should span the entire width of the dialog (KTOR-4064)
    • πŸ”Œ StatusPages plugin does not handle most specific exception in Ktor 2.0.0 (KTOR-4187)
    • Behaviour of ApplicationEngine start method not documented properly (KTOR-2271)
    • πŸ”Œ CORS plugin should be route scoped (KTOR-4157)
    • 🌐 Raw Web Socket Connection Suspending Forever (KTOR-4166)
    • πŸ”Œ StatusPages: SerializationException isn't handled when CallID plugin is installed after StatusPages plugin (KTOR-4155)
    • 0️⃣ HttpClient.wss defaults to port 80 instead of 443 (KTOR-4175)
    • Missing subject parameter in StatusPages status config method (KTOR-4191)
    • ConditionalHeaders cause the Last-Modified header appears twice in a response (2.0.0) (KTOR-4163)
    • 0️⃣ DefaultHeaders: The Server header appears twice in a response (2.0.0) (KTOR-4152)
    • βœ… Testing: Resolving a substitution to a value in default config fails when custom HOCON config is used (KTOR-4130)
    • πŸ”Œ Combination of HttpCache and Logging plugins cause receiving incomplete response body for chunked replies (KTOR-3916)

    • 2.0.0

      Published 11 April 2022

    • HttpClient breaks permanently when certain exceptions occur while consuming ByteReadChannel (KTOR-3140)

    • πŸ›  Fix Dokka publication for 2.0.0 (KTOR-4194)

    • πŸ“„ [Doc] invalid KDoc link for https://ktor.io/docs/http-client-engines.html#darwin (KTOR-4165)

    • πŸš€ Update the 'Manual Configuration' help link after the 2.0.0 release (KTOR-3678)

    • πŸ“„ Where did 1.6.8 docs go? (KTOR-4147)

    • Fail to create response observer in different native thread. (KTOR-3278)

    • "Ktor app with Kotlin/Native fails with ""There is no event loop. Use runBlocking { ... } to start one.""" (KTOR-4149)

    • ⚑️ Update limitations for Kotlin/Native (KTOR-4143)

    • UDP sockets on native (KTOR-1159)

    • βœ… Ktor stopped working with latest Tomcat 9.0.39 (KTOR-1172)

    • ⚑️ Update to Kotlin 1.6.20 (KTOR-4107)

    • 🚚 ContentNegotiation: the plugin removes Content-Type header even when a matching registration is not found (KTOR-4091)

    • JMXReporter not included in ktor-metrics:1.6.8 (KTOR-4102)

    • 🐎 Performance Issue / Ktor & Netty (KTOR-610)

    • πŸ“„ httpMethod is not affected by X-Http-Method-Override (in opposite to docs) (KTOR-404)

    • Android: Failed resolution of: Ljava/nio/file/Paths using API 25 and lower (KTOR-3269)

    • πŸ”Œ ContentNegotiation plugins don't accept null-responses from ContentConverts (KTOR-3346)

    • Using proguard and CallLogging feature causes JVM crashes (KTOR-3345)

    • βœ‚ Remove checking body transformation from ContentNegotation (KTOR-3272)

    • πŸ”‹ Feature: Use websockets with serialization (KTOR-423)

    • πŸ›  Fix testErrorHandling with JS (KTOR-3510)

    • [netty] Headers are only flushed after first byte is written (KTOR-3364)

    • AttributeKey instance is identified by its identity instead of its name (KTOR-3538)

    • πŸ“œ HttpCookies: parse / in the name of a cookie (KTOR-3497)

    • Returning Thymeleaf fragments from Routes (KTOR-3624)

    • πŸ”Œ Rewrite Thymeleaf to New Plugins API (KTOR-3687)

    • πŸ”Œ Rewrite HSTS to new plugins API (KTOR-3752)

    • πŸ”Œ Rewrite FreeMarker to new Plugins API (KTOR-3751)

    • πŸ”Œ Rewrite CachingHeaders to New Plugins API (KTOR-3688)

    • πŸ”Œ Implementation for Single Page Plugin (KTOR-3635)

    • Sockets no longer working on Android since 2.0.0-beta-1 (KTOR-3659)

    • πŸ”Œ Implementation for Single Page Plugin (KTOR-3577)

    • Content Negotiation: Gson: Should be able to return 400 for badly formatted request. (KTOR-373)

    • πŸ”Œ Rewrite ConditionalHeaders to New Plugins API (KTOR-3759)

    • πŸ”Œ Single Page Plugin (KTOR-3531)

    • πŸ‘€ HttpResponseValidator.handleResponseException should have access to request to provide valuable information in exceptions (KTOR-3652)

    • πŸ— Build in feature for Single PAge Applications (KTOR-515)

    • "ContentNegotiation: The ""charset=UTF-8"" part is added for the Content-Type header" (KTOR-3799)

    • Rewrite Netty Engine (KTOR-3467)

    • πŸ”Œ SinglePageApplication plugin returns 404 for non-existent paths (KTOR-3944)

    • πŸ“¦ Split packages in KTOR Client 2.00-BETA-1 (KTOR-4106)

    • πŸ‘Œ Support WebSockets in Darwin engine (KTOR-4093)

    • ⏱ Ktor http client with java engine uses incorrect timeout. (KTOR-4058)

    • 🐎 ktor-client performance (KTOR-506)

    • InvalidPathException in ApplicationEngineEnvironmentReloading (KTOR-3831)

    • "Screenshot with the new project wizard on the ""Create a new projectο»Ώ"" topic is outdated" (KTOR-4020)

    • βž• Add possibility to fully configure metricName in ktor-server-metrics-micrometer (KTOR-3302)

    • βž• Adding Native support to ktor-server-html-builder for 2.0.0 release (KTOR-3972)

    • 🀑 Ktor: Allow overriding coroutine dispatcher in MockEngine (KTOR-3230)

    • πŸ”Œ HttpClient request hangs when Logging plugin is installed (KTOR-3970)

    • Ktor uses too much memory compared to other Http server libraries (KTOR-3903)

    • [client] MPP WebSockets client (KTOR-751)

    • πŸ‘ Native websocket client support (KTOR-599)

    • Don't perform migrations for MPP projects (KTOR-3812)

    • πŸ”„ Change visibility from internal to public to HttpResponse and HttpClientCall (KTOR-3984)

    • πŸ“‡ Rename the 'header' function to 'allowHeader' for consistency with similar functions (KTOR-3980)

    • πŸ”Œ The CallID plugin missing in a New Project wizard (KTOR-2911)

    • πŸ”Œ IDEA plugin missing the Session authentication (KTOR-3359)

    • πŸ”Œ Install plugin completion doesn't work with custom built version of Ktor from main (KTOR-4031)

    • πŸ”Œ Memory leak when Compression plugin is installed (KTOR-4028)

    • πŸ‘‰ Make most useful hooks public (KTOR-3797)

    • βœ… The ShutDownUrl sample doesn't work in the latest EAP (KTOR-4025)

    • OAuth: scopes are separated by + that's encoded to %2B (KTOR-3945)

    • βœ… The Caching headers plugin stops working in the latest EAP (KTOR-4022)

    • πŸ›  The 'allowHeadersPrefixed' and 'allowHeaders' CORS functions works incorrectly (KTOR-3979)

    • βœ… Migrate Generator to New Testing API (KTOR-3763)

    • πŸ‘Œ Support receiving OAuth code response as form post (KTOR-3342)

    • βœ… Ktor test websocket call hangs (KTOR-4000)

    • βœ… Implementation for Create ktor-test module with mocks of engine and clients for writing tests (KTOR-3236)

    • βœ‚ Remove mutex from call logging (KTOR-3987)

    • βž• Add jte template support (KTOR-3749)

    • No contextual serializers when KotlinxSerializationConverter is used (KTOR-3782)

    • βž• Add support for list size methods in PlaceholderList (KTOR-3940)

    • Missing headers in OutgoingContent (KTOR-3758)

    • ResponseObserver does not respect MDC context (KTOR-2435)

    • Binary compatibility issue with ktor-2.0.0-beta1 when using JDK 1.8 (KTOR-3645)

    • ✨ Enhance api for ConditionalHeaders usage (KTOR-728)

    • πŸ”Œ localization issue with new project wizard - plugin page (KTOR-3943)

    • IDE action to migrate to 2.0.0 (KTOR-3225)

    • βž• Add colors to CLI client (KTOR-3929)

    • πŸ‘Œ Support macOs M1 in CLI generator (KTOR-3922)

    • Bearer Auth: refreshTokens callback blocks indefinitely when server returns 401 (KTOR-3795)

    • "ContentEncoding: ""Unexpected EOF: expected 10 more bytes"" when trying to decode HEAD response" (KTOR-3781)

    • Memory leak in ktor-client-curl (KTOR-3767)

    • πŸ”Œ Rename ApplicationPlugin to BaseApplicationPlugin (KTOR-3873)

    • Ktor Server and double receive break receiving of big files (KTOR-3832)

    • Setting Content-Length Header manually when using call.respondOutputStream (KTOR-560)

    • πŸ‘Œ Support for adding values to the MDC later on in the pipeline. (KTOR-536)

    • 0️⃣ Default request: Query parameters in default URL are overwritten (KTOR-3793)

    • ⏱ Timeout in receiving streaming body breaks client (KTOR-3704)

    • 0️⃣ Setting DefaultRequest.url.protocol on the client side breaks the ability to establish a ws connection (KTOR-3890)

    • πŸ“¦ Rename the 'io.ktor.resources.serialisation' package to '...serialization' for consistency (KTOR-3842)

    • 🐎 Generator performance: cache Maven requests (KTOR-3866)

    • JS: Websocket errors are not being handled correctly (KTOR-1726)

    • βœ… Logback transient depencency from ktor-server-test-host (KTOR-2038)

    • πŸ”Œ Ktor plugin is asking to migrate to EAP versions (KTOR-3609)

    • "Module ""io.ktor:ktor-network (io.ktor:ktor-network-iosarm64)"" has a reference to symbol kotlinx.coroutines/SingleThreadDispatcher|null[0]" (KTOR-3562)

    • Retry on HttpCode or network error (KTOR-572)

    • Server hangs indefinitely when responding to requests on android using version 2.0.0 (KTOR-3653)

    • IllegalStateException when writing in coroutine context backed by more than one thread (KTOR-3801)

    • πŸ‘· References for kotlinx.serialization plugin sample code in a new Ktor project created with Maven build system are unresolved (KTOR-3754)

    • multipart/form-data requests: No way of streaming data asynchronously (KTOR-3825)

    • πŸ‘ Migrate ForwardHeaderSupport to new API (KTOR-3677)

    • βœ… Sort endpoints in Endpoint view and when creating tests (KTOR-3725)

    • StackOverflowError when opening Enpoints view with local Routing function (KTOR-3816)

    • Provide an example how to use new MultiPartFormDataContent (#KTOR-325) (KTOR-3549)

    • πŸ“„ Client docs for desktop are misleading (KTOR-3813)

    • When working with SessionStorage, write is called every time after read (KTOR-3336)

    • 0️⃣ DefaultRequest API doc contains missing members (KTOR-3800)

    • βœ… testApplication: Add https EngineConnector (KTOR-3810)

    • πŸ”Œ Rewrite HttpsRedirect to New Plugins API (KTOR-3668)

    • πŸ”Œ Rewrite WebJars to New Plugins API (KTOR-3667)

    • πŸ”Œ Rewrite Metrics to New Plugins API (KTOR-3666)

    • πŸ”Œ Rewrite PartialContent to New Plugins API (KTOR-3665)

    • πŸ”Œ Rewrite CallId to New Plugins API (KTOR-3352)

    • ⬇️ Drop Before/After from new plugins API (KTOR-3803)

    • 🐎 Performance: Don't store PSI elements in Ktor Url Mappings. Use Smart Reference or PSI Anchor, instead (KTOR-3789)

    • πŸ— Infrastructure: Build with JDK 11 for all modules fails: Can't inline metric micrometer because it uses jvm target 8 (KTOR-3712)

    • The 'refreshTokens' callback isn't invoked when an API returns a 401 response without the 'WWW-Authenticate' header (KTOR-3516)

    • βž• Add DslMarker to testApplication builder (KTOR-3783)

    • πŸ”§ Prohibit Nesting of install Blocks for Client and Server Configuration (KTOR-3333)

    • πŸ“„ In docs and generated Gradle, Prometheus is misspelled as Promteteus (KTOR-3792)

    • submitFormWithBinaryData: mutation attempt of frozen @194c6a8 (KTOR-2947)

    • iOS: Failed to find HttpClientEngineContainer with new native memory model (KTOR-3517)

    • πŸ”Œ Rewrite CallLogging to new plugins API (KTOR-3351)

    • ⬇️ Drop @ExperimentalTime (KTOR-3595)

    • Using any Suspend or Coroutine function in Bearer Auth functions cause crash on iOS (KTOR-3177)

    • [iOS] InvalidMutabilityException: mutation attempt of frozen (KTOR-1223)

    • πŸ”§ InvalidMutabilityException: Configuration issues for ios (KTOR-1251)

    • βœ… iOS testing MockEngine issue (KTOR-1541)

    • """InvalidMutabilityException: Frozen during lazy computation"" when using by lazy for HttpClient" (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)

    • Native: Cannot mutate objects inside onDownload and onUpload lambdas (KTOR-3068)

    • πŸ”§ "HttpClient / native: ""mutation attempt of frozen"" crash when configuring the client" (KTOR-1628)

    • Ktor Kotlin Multiplatform leak (KTOR-3586)

    • Put label to local history before performing migration in Ktor (KTOR-3716)

    • πŸ”Œ StatusPages plugin continues call after calling handler (KTOR-3707)

    • πŸ‘» StatusPages not returning code 500 on catched exception (KTOR-3721)

    • πŸ”Œ Rewrite Compression to New Plugins API (KTOR-3661)

    • πŸ”Œ Rewrite Auto Head to New Plugins API (KTOR-3670)

    • πŸ”Œ Rewrite DoubleReceive to New Plugins API (KTOR-3672)

    • 0️⃣ Make default charset UTF-8 when using receiveText for application/json request (KTOR-789)

    • πŸ”Œ Rewrite CORS to New Plugins API (KTOR-3663)

    • πŸ”Œ Rewrite Auth to New Plugins API (KTOR-3660)

    • πŸ”Œ Rewrite Sessions to New Plugins API (KTOR-3664)

    • πŸ”Œ Rewrite ContentNegotiation to New Plugins API (KTOR-3669)

    • πŸ”Œ Rewrite MethodOverride to New Plugins API (KTOR-3662)

    • 0️⃣ Client logging: no description of default loggers' behavior on different platforms (KTOR-3421)

    • ⚑️ Update logback and slf4j (KTOR-3733)

    • πŸ‘ NoClassDefFoundError is thrown on Android because ktor-utils references a not supported Java API (KTOR-3690)

    • πŸ‘ Ktor-Utils references a Java API not supported by Android (KTOR-3426)

    • πŸ”Œ Migrate plugins to multiplatform (KTOR-3539)

    • ByteBufferChannel leaves unflushed data after partial readAvailable causing Apache client request to stall (KTOR-3730)

    • 0️⃣ Migrate DefaultHeaders to new API (KTOR-3676)

    • ByteReadPacket.headerSizeHint is unused (KTOR-3632)

    • πŸ”Œ Hooks don't work with routing scoped plugins (KTOR-3740)

    • πŸ— Client request builder: add shortcuts for authentication headers (KTOR-2876)

    • πŸ‘ Pull Request - KTOR-404 Introduce support for X-Http-Method-Override (KTOR-1825)

    • Can't set a base url that includes path data (KTOR-730)

    • Mention about closing ActorSelector manager (KTOR-269)

    • βͺ Migrate to new kotlinx.coroutines and limited dispatcher(revert corePoolSize option) (KTOR-3463)

    • Routing is called for handled requests (KTOR-3732)

    • πŸ“š TomCat Documentation (KTOR-2395)

    • πŸ“¦ default resource package don't work (KTOR-3722)

    • webSocketSession method suspends indefinitely when there in connection error (Ktor beta) (KTOR-3654)

    • FUS metrics in IDE (KTOR-2775)

    • πŸ“š Update Documentation and Code for DoubleReceive Feature (KTOR-1876)

    • βž• Add Defaults for the server.stop Method (KTOR-3505)

    • HTTP/2 not working with Netty (KTOR-3705)

    • ⚑️ Include changes from hands-on PR: Update 03_customer-routes.md #120 (KTOR-3713)

    • Nested routing fails to match route (KTOR-1626)

    • URLBuilder from string with trailing slash or from Url with no trailing slash, produces double slash when appending segments (KTOR-3618)

    • βœ… Provide the capability to generate WebSocket tests (KTOR-3061)

    • βž• Add modulepath support for Java >= 9 (KTOR-619)

    • πŸ”Œ HttpRequestRetry plugin expects Retry-After header value to be in milliseconds (KTOR-3634)

    • StringValuesBuilder.appendIfNameAbsent appends only if name is already present (KTOR-3650)

    • Migrations of the client code are not working for queries with non-trivial expression body (KTOR-3703)

    • 🍎 Curl Cinterop compilation is failed on MacOS (KTOR-3681)

    • Compression slow due to using BEST_COMPRESSION for deflate/gzip (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)

    • ⚑️ Update URL for the 'Adding Ktor dependencies' topic and add redirects (KTOR-3673)

    • πŸ‘Œ Support package split in Ktor migrations in plugin (java modules support) (KTOR-3679)

    • πŸ”Œ Rewrite StatusPages with the new plugins API (KTOR-3312)

    • πŸ”§ "Save ""Create Run Configuration automatically"" within .idea directory" (KTOR-3282)

    • java.lang.NoSuchMethodError: java.nio.ByteBuffer.limit(I)Ljava/nio/ByteBuffer when Ktor is built with JDK 9+ (KTOR-1398)

    • βœ… TestHttpClientEngine doesn't support HTTPS requests (KTOR-3614)

    • Endpoints view: Endpoints not populated if routes require authentication (KTOR-3182)

    • πŸ“š Insecure user session samples in documentation (KTOR-3582)

    • HttpRequestTimeoutException should not inherit CancellationException in ktor http client (KTOR-3192)

    • πŸ“š Update Documentation and Code for HSTS Feature (KTOR-1878)

    • ⬇️ Reduce the number of versions displayed in a plugin (KTOR-3250)

    • πŸ“š Update Documentation and Code for Webjars Feature (KTOR-1885)

    • πŸ‘ XForwardedHeaderSupport should let you specify which index (from end) to choose (KTOR-565)

    • πŸ”§ Make migrations more configurable (KTOR-3617)

    • EAP Naming: main-number conflicts with dependencies (KTOR-2724)

    • ktor.io/learn typo (KTOR-3563)

    • πŸ“š Update Documentation and Code for HttpsRedirect Feature (KTOR-1879)

    • πŸ‘ Provide better support for Ktor clients (KTOR-883)

    • ⬆️ Multiple messages around upgrading to new version (KTOR-3494)

    • HttpRequestRetry in KTOR 2.0 should allow for request altering between retries (KTOR-3544)

    • πŸš€ Deploy Ktor application to docker topic contains hard coded project name (KTOR-2852)

    • πŸ‘Œ Improvements for Docker sample in documentation (KTOR-3294)

    • πŸ“¦ """io.ktor.serializaion.gson"" - package naming in 2.0" (KTOR-3527)

    • ⬇️ Drop client.get Operator Because of Ambiguity with get(URL) (KTOR-3487)

    • "Option ""Add imports for Ktor modules automatically"" doesn't work" (KTOR-3226)

    • Migrations are unavailable (KTOR-3570)

    • ⚑️ Pull Request - fix #1970 - update MultiPartFormDataContent to allow contentType override using optional builder (KTOR-1833)

    • 0️⃣ Pull Request - KTOR-1264 - Add UUID to DefaultConversionService (KTOR-1815)

    • πŸ‘ Pull Request - Intercept pipeline at Setup phase for XForwardedHeaderSupport feature… (KTOR-1844)

    • Pull Request - Add locale to ThymeleafContent (KTOR-1838)

    • Objections to changing boundary to internal on MultiPartFormDataContent? (KTOR-325)

    • πŸ›  Fix Log Size for Java 11 Windows Build (KTOR-3535)

    • ByteChannelSequential freezes after closing due to race condition (KTOR-2776)

    • Apple Arm: 'Resolving NPM dependencies using yarn' returns 139 (KTOR-3561)

    • πŸ”„ Change log level from INFO to ERROR for tests only (KTOR-3466)

    • Responding without contentLength freezes on CIO native (KTOR-3492)

    • webSocketSession freeze every time (KTOR-3460)

    • Exceptions are Swallowed in HttpClient.wss block (KTOR-3461)

    • πŸ‘Œ Support receiving headers before sending body in CIO client engine (KTOR-3491)

    • πŸ— Build and test on Apple Silicon Arm (KTOR-3248)

    • πŸ”Œ Prototype anchors in new plugins API (KTOR-3392)

    • πŸ“‡ Rename the 'Ios' client engine to more generic term to cover all Apple operating systems (KTOR-3394)

    • ⚑️ Update Samples to Ktor 2.0 (KTOR-3218)

    • Implement new Locations feature (KTOR-1706)

    • πŸ›  Fix old metadata publication (KTOR-3469)

    • πŸ‘· JS Client doesn't support ServiceWorker (KTOR-3448)

    • 🚚 Move Server Related Code from ktor-http-cio to ktor-server-cio (KTOR-3462)

    • βž• Add Check if Feature is installed for WebSocket builders (KTOR-3459)

    • βœ… With test application should load environment from the application.conf (KTOR-2794)

    • βœ… TestEngineApplication - implement HttpClient API (KTOR-2416)

    • βœ… Inconsistent TestApplicationRequest and Client HttpRequestBuilder API's (KTOR-1246)

    • Server features instead of client in the client install block (KTOR-3412)

    • πŸ”Œ ContentNegotiation is missing in the plugins completion window (KTOR-3411)

    • πŸ— Code Snippets use Groovy in build files as opposed to default Kotlin option for Wizard (KTOR-2190)

    • πŸ‘Œ Improve documentation for native/Apple client engines (KTOR-3375)

    • IJ locked after attempt to create new run config in a dialog (KTOR-3385)

    • πŸ”’ "High CPU consumption/Lock after project opening in org.jetbrains.kotlin.storage.getValue ; org.jetbrains.kotlin.idea.caches.resolve.IdeaResolverForProject" (KTOR-3337)

    • ⚑️ Update Ktor Plugin Description (KTOR-3388)

    • βž• Add explicit menu action for migration (KTOR-3400)

    • Project Generated with eap-256 has Errors in Imports (KTOR-3397)

    • ⚑️ Update non-generic samples to 2.0 (KTOR-3285)

    • πŸ‘Œ Support New Native Memory Model (KTOR-3217)

    • 🚚 Simplify plugin descriptions in wizard, remove empty options (KTOR-3386)

    • Server for Kotlin Native (KTOR-746)

    • call.request.queryParameters decode plus as space (KTOR-3297)

    • πŸ”Œ Migrate existing plugins to RoutingScoped (KTOR-3201)

    • Bearer Authentication: Queue requests until refresh of tokens is completed (KTOR-3325)

    • Article about storing sensitive data and accessing it in application.conf (KTOR-3340)

    • βž• Add parameter for specifying content-length in ApplicationCall#respondBytes (KTOR-3087)

    • πŸ“š Update Documentation and Code for CallId Feature (KTOR-1874)

    • 🌲 Passing port 0 to start server on random port doesn't publish correct port to log (KTOR-3288)

    • πŸ‘ Allow application environment configuration when running via commandLineEnvironment (KTOR-3027)

    • πŸ‘ XForwardedHeaderSupport is installed late in the pipeline (KTOR-731)

    • βž• Add locale to ThymeleafContent (KTOR-3313)

    • βž• Add support for ports in withTestApplication (KTOR-725)

    • Error in 2.0 doc/sample for HttpClient retry (KTOR-3303)

    • βœ… Cyclic dependency issue in latest 2.0 (main branch) (KTOR-3240)

    • πŸ”§ An error occurred when running a sample with the configured XML serializer (KTOR-3286)

    • respondOutputStream behind nginx fails (KTOR-346)

    • πŸ‘ XML Support in Ktor (KTOR-489)

    • Start ktor server on random port (KTOR-686)

    • ProxyConfig.type checking for DIRECT instead of SOCKS (KTOR-1733)

    • Freeze the screen when I create routes (KTOR-3004)

    • πŸ— Client: DefaultRequest apply defaults before request builder (KTOR-2877)

    • KDoc: HttpRequestBuilder.header actually appends header value, does not set it (KTOR-2492)

    • parameterOf() should have a variant that takes in a Map> (KTOR-399)

    • πŸ‘· TLS relared tests are failing on CI (KTOR-3224)

    • [Ktor Client] CborFeature (KTOR-3174)

    • πŸ‘» Jackson: receiveOrNull crashes with an exception when sending empty content (KTOR-727)

    • Jackson-backed ApplicationCall.receive does not throw ContentTransformationException (KTOR-614)

    • βœ‚ Remove Obsolete Check Cast from SuspendFunctionGun (KTOR-3178)

    • Ktor: Fold internal stack frames for HTTP server (KTOR-2274)

    • πŸ‘Œ Support 2.0.0 in IDE (KTOR-3196)

    • Client HttpCache feature is not documented (KTOR-1279)

    • πŸ”‹ Feature to Plugin changes in Documentation (KTOR-2372)

    • ⚑️ Update server dependencies and imports in docs for 2.0.0 (KTOR-3150)

    • βž• Add method to Client and ServerResponseException (KTOR-3128)

    • βž• Add UUID to DefaultConversionService (KTOR-1264)

    • Prioritize text found in feature titles over descriptions (KTOR-2488)

    • SerializationException when serializing request body object of generic class type (KTOR-1019)

    • βœ… The 'Create test for Ktor module' intention actions changes files from other modules for a multimodule Gradle project (KTOR-3062)

    • Implementation for Simple API for writing features (KTOR-2480)

    • πŸ”Œ Wizard Plugin listing strange link (KTOR-2882)

    • βž• Add filtering support in Ktor client response interceptor (KTOR-2992)

    • βœ… Nothing happens when no test routes is selected when generating Ktor test for module (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)

    • πŸ‘ Allow using the client itself inside Auth plugin in the refreshTokens lambda. (KTOR-2977)

    • ⚑️ ADE at io.ktor.ide.plugins.add.KtorMarketplacePluginsUpdater.checkForUpdates (KTOR-3076)

    • Define completion priorities for Ktor keywords (KTOR-2773)

    • βž• Adding features action in IDE (KTOR-2893)

    • Ktor Client JS: request to /example requests http://localhost/example (KTOR-453)

    • πŸ— URLBuilder: Move Default Values to build() function (KTOR-1345)

    • Implement design about moving features from ktor-server-core (KTOR-1239)

    • πŸ“¦ Move server code to io.ktor.server.* package (KTOR-2865)

    • Impossible to modify response headers (KTOR-2822)

    • ApplicationConfig: how to iterate over keys and values of config (KTOR-2318)

    • Missing Locations params result in 404 instead of 400 (KTOR-447)

    • Implementation for Events Feature For Client Metrics (KTOR-2472)

    • Should return 405 when route exists but not for given method instead of 404 (KTOR-737)

    • πŸ›  Fix 2.0.0 branch compilation (KTOR-2603)

    • Query of pre-signed URL has been altered after decode and re-encode process (KTOR-778)

    • ApplicationCall.locationOrNull raises error (KTOR-1684)

    • ContentConverter.convertForSend should receive a KType (KTOR-444)

    • πŸ— Make body nullable for request builder (KTOR-1400)

    • Send 100 Continue response only when getting a request to receive IncomingContent (KTOR-855)

  • v2.0.0-beta Changes

    Published 23 December 2021

    • EAP Naming: main-number conflicts with dependencies (KTOR-2724)
    • ktor.io/learn typo (KTOR-3563)
    • ⬆️ Multiple messages around upgrading to new version (KTOR-3494)
    • πŸš€ Deploy Ktor application to docker topic contains hard coded project name (KTOR-2852)
    • πŸ‘Œ Improvements for Docker sample in documentation (KTOR-3294)
    • πŸ“¦ "io.ktor.serializaion.gson" - package naming in 2.0 (KTOR-3527)
    • ⬇️ Drop client.get Operator Because of Ambiguity with get(URL) (KTOR-3487)
    • Option "Add imports for Ktor modules automatically" doesn't work (KTOR-3226)
    • Migrations are unavailable (KTOR-3570)
    • AttributeKey instance is identified by its identity instead of its name (KTOR-3538)
    • πŸ›  Fix Log Size for Java 11 Windows Build (KTOR-3535)
    • ByteChannelSequential freezes after closing due to race condition (KTOR-2776)
    • Apple Arm: 'Resolving NPM dependencies using yarn' returns 139 (KTOR-3561)
    • πŸ”„ Change log level from INFO to ERROR for tests only (KTOR-3466)
    • Responding without contentLength freezes on CIO native (KTOR-3492)
    • webSocketSession freeze every time (KTOR-3460)
    • Exceptions are Swallowed in HttpClient.wss block (KTOR-3461)
    • πŸ‘Œ Support receiving headers before sending body in CIO client engine (KTOR-3491)
    • [netty] Headers are only flushed after first byte is written (KTOR-3364)
    • πŸ›  Fix testErrorHandling with JS (KTOR-3510)
    • πŸ— Build and test on Apple Silicon Arm (KTOR-3248)
    • πŸ›  Fix old metadata publication (KTOR-3469)
    • βœ‚ Remove checking body transformation from ContentNegotation (KTOR-3272)
    • πŸ‘ Ktor-Utils references a Java API not supported by Android (KTOR-3426)
    • βœ… With test application should load environment from the application.conf (KTOR-2794)
    • βœ… Inconsistent TestApplicationRequest and Client HttpRequestBuilder API's (KTOR-1246)
    • Server features instead of client in the client install block (KTOR-3412)
    • Using proguard and CallLogging feature causes JVM crashes (KTOR-3345)
    • πŸ”Œ ContentNegotiation is missing in the plugins completion window (KTOR-3411)
    • πŸ— Code Snippets use Groovy in build files as opposed to default Kotlin option for Wizard (KTOR-2190)
    • IJ locked after attempt to create new run config in a dialog (KTOR-3385)
    • πŸ”Œ ContentNegotiation plugins don't accept null-responses from ContentConverts (KTOR-3346)
    • πŸ”’ High CPU consumption/Lock after project opening in org.jetbrains.kotlin.storage.getValue ; org.jetbrains.kotlin.idea.caches.resolve.IdeaResolverForProject (KTOR-3337)
    • ⚑️ Update Ktor Plugin Description (KTOR-3388)
    • Project Generated with eap-256 has Errors in Imports (KTOR-3397)
    • ⚑️ Update non-generic samples to 2.0 (KTOR-3285)
    • 🚚 Simplify plugin descriptions in wizard, remove empty options (KTOR-3386)
    • Bearer Authentication: Queue requests until refresh of tokens is completed (KTOR-3325)
    • Article about storing sensitive data and accessing it in application.conf (KTOR-3340)
    • Android: Failed resolution of: Ljava/nio/file/Paths using API 25 and lower (KTOR-3269)
    • IDE action to migrate to 2.0.0 (KTOR-3225)
    • 🌲 Passing port 0 to start server on random port doesn't publish correct port to log (KTOR-3288)
    • πŸ‘ XForwardedHeaderSupport is installed late in the pipeline (KTOR-731)
    • Error in 2.0 doc/sample for HttpClient retry (KTOR-3303)
    • βœ… Cyclic dependency issue in latest 2.0 (main branch) (KTOR-3240)
    • πŸ”§ An error occurred when running a sample with the configured XML serializer (KTOR-3286)
    • respondOutputStream behind nginx fails (KTOR-346)
    • ProxyConfig.type checking for DIRECT instead of SOCKS (KTOR-1733)
    • Freeze the screen when I create routes (KTOR-3004)
    • πŸ“„ httpMethod is not affected by X-Http-Method-Override (in opposite to docs) (KTOR-404)
    • πŸ— Client: DefaultRequest apply defaults before request builder (KTOR-2877)
    • KDoc: HttpRequestBuilder.header actually appends header value, does not set it (KTOR-2492)
    • πŸ‘· TLS relared tests are failing on CI (KTOR-3224)
    • πŸ‘» Jackson: receiveOrNull crashes with an exception when sending empty content (KTOR-727)
    • Content Negotiation: Gson: Should be able to return 400 for badly formatted request. (KTOR-373)
    • Jackson-backed ApplicationCall.receive does not throw ContentTransformationException (KTOR-614)
    • βœ‚ Remove Obsolete Check Cast from SuspendFunctionGun (KTOR-3178)
    • πŸ‘Œ Support 2.0.0 in IDE (KTOR-3196)
    • Client HttpCache feature is not documented (KTOR-1279)
    • ⚑️ Update server dependencies and imports in docs for 2.0.0 (KTOR-3150)
    • Prioritize text found in feature titles over descriptions (KTOR-2488)
    • SerializationException when serializing request body object of generic class type (KTOR-1019)
    • βœ… The 'Create test for Ktor module' intention actions changes files from other modules for a multimodule Gradle project (KTOR-3062)
    • πŸ”Œ Wizard Plugin listing strange link (KTOR-2882)
    • βœ… Nothing happens when no test routes is selected when generating Ktor test for module (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)
    • πŸ‘ Allow using the client itself inside Auth plugin in the refreshTokens lambda. (KTOR-2977)
    • ⚑️ ADE at io.ktor.ide.plugins.add.KtorMarketplacePluginsUpdater.checkForUpdates (KTOR-3076)
    • Ktor Client JS: request to /example requests http://localhost/example (KTOR-453)
    • πŸ— URLBuilder: Move Default Values to build() function (KTOR-1345)
    • Impossible to modify response headers (KTOR-2822)
    • Missing Locations params result in 404 instead of 400 (KTOR-447)
    • Should return 405 when route exists but not for given method instead of 404 (KTOR-737)
    • πŸ›  Fix 2.0.0 branch compilation (KTOR-2603)
    • Query of pre-signed URL has been altered after decode and re-encode process (KTOR-778)
    • ApplicationCall.locationOrNull raises error (KTOR-1684)
    • πŸ— Make body nullable for request builder (KTOR-1400)
    • πŸ‘ Provide better support for Ktor clients (KTOR-883)
    • Retry on HttpCode or network error (KTOR-572)
    • HttpRequestRetry in KTOR 2.0 should allow for request altering between retries (KTOR-3544)
    • πŸ“œ HttpCookies: parse / in the name of a cookie (KTOR-3497)
    • πŸ‘Œ Support for adding values to the MDC later on in the pipeline. (KTOR-536)
    • ⚑️ Pull Request - fix #1970 - update MultiPartFormDataContent to allow contentType override using optional builder (KTOR-1833)
    • 0️⃣ Pull Request - KTOR-1264 - Add UUID to DefaultConversionService (KTOR-1815)
    • πŸ‘ Pull Request - Intercept pipeline at Setup phase for XForwardedHeaderSupport feature… (KTOR-1844)
    • Pull Request - Add locale to ThymeleafContent (KTOR-1838)
    • πŸ‘ Pull Request - KTOR-404 Introduce support for X-Http-Method-Override (KTOR-1825)
    • Objections to changing boundary to internal on MultiPartFormDataContent? (KTOR-325)
    • πŸ”Œ Prototype anchors in new plugins API (KTOR-3392)
    • πŸ“‡ Rename the 'Ios' client engine to more generic term to cover all Apple operating systems (KTOR-3394)
    • ⚑️ Update Samples to Ktor 2.0 (KTOR-3218)
    • Implement new Locations feature (KTOR-1706)
    • πŸ”‹ Feature: Use websockets with serialization (KTOR-423)
    • πŸ‘· JS Client doesn't support ServiceWorker (KTOR-3448)
    • 🚚 Move Server Related Code from ktor-http-cio to ktor-server-cio (KTOR-3462)
    • πŸ— Client request builder: add shortcuts for authentication headers (KTOR-2876)
    • βž• Add Check if Feature is installed for WebSocket builders (KTOR-3459)
    • βœ… Implementation for Create ktor-test module with mocks of engine and clients for writing tests (KTOR-3236)
    • βœ… TestEngineApplication - implement HttpClient API (KTOR-2416)
    • βž• Add explicit menu action for migration (KTOR-3400)
    • βž• Add possibility to fully configure metricName in ktor-server-metrics-micrometer (KTOR-3302)
    • πŸ‘Œ Support New Native Memory Model (KTOR-3217)
    • Server for Kotlin Native (KTOR-746)
    • call.request.queryParameters decode plus as space (KTOR-3297)
    • πŸ”Œ Migrate existing plugins to RoutingScoped (KTOR-3201)
    • πŸ‘Œ Support receiving OAuth code response as form post (KTOR-3342)
    • βž• Add parameter for specifying content-length in ApplicationCall#respondBytes (KTOR-3087)
    • πŸ‘ Allow application environment configuration when running via commandLineEnvironment (KTOR-3027)
    • βž• Add locale to ThymeleafContent (KTOR-3313)
    • βž• Add support for ports in withTestApplication (KTOR-725)
    • πŸ”¦ Expose non-reified request methods (KTOR-2590)
    • πŸ‘ XML Support in Ktor (KTOR-489)
    • Start ktor server on random port (KTOR-686)
    • parameterOf() should have a variant that takes in a Map> (KTOR-399)
    • [Ktor Client] CborFeature (KTOR-3174)
    • Can't set a base url that includes path data (KTOR-730)
    • Ktor: Fold internal stack frames for HTTP server (KTOR-2274)
    • βž• Add method to Client and ServerResponseException (KTOR-3128)
    • βž• Add UUID to DefaultConversionService (KTOR-1264)
    • Implementation for Simple API for writing features (KTOR-2480)
    • βž• Add filtering support in Ktor client response interceptor (KTOR-2992)
    • Define completion priorities for Ktor keywords (KTOR-2773)
    • βž• Adding features action in IDE (KTOR-2893)
    • Implement design about moving features from ktor-server-core (KTOR-1239)
    • πŸ“¦ Move server code to io.ktor.server.* package (KTOR-2865)
    • ApplicationConfig: how to iterate over keys and values of config (KTOR-2318)
    • Implementation for Events Feature For Client Metrics (KTOR-2472)
    • ContentConverter.convertForSend should receive a KType (KTOR-444)
    • Send 100 Continue response only when getting a request to receive IncomingContent (KTOR-855)
    • πŸ“š Update Documentation and Code for HttpsRedirect Feature (KTOR-1879)
    • πŸ‘Œ Improve documentation for native/Apple client engines (KTOR-3375)
    • πŸ“š Update Documentation and Code for CallId Feature (KTOR-1874)
    • πŸ”‹ Feature to Plugin changes in Documentation (KTOR-2372)
  • v1.6.8 Changes

    Published 14 March 2022

    • ⚑️ Update Gradle to 7.4
    • ⚑️ Update Kotlin to 1.6.10
    • Migrate gradle to version catalog
    • ⚑️ Update logback version to 1.2.11 (KTOR-3935)
    • ⚑️ Update atomicfu to 0.17.1
    • ⚑️ Update netty to 4.1.74.Final
    • ⚑️ Update netty-tcnative to 2.0.45.Final
    • ⚑️ Update jetty to 9.4.45.v20220203
    • ⚑️ Update tomcat to 9.0.59
    • ⚑️ Update apache to 4.1.5
    • ⚑️ Update okhttp to 4.9.3
    • ⚑️ Update gson to 2.9.0
    • ⚑️ Update jackson 2.13.1
    • ⚑️ Update slf4j to 1.7.36
    • ⚑️ Update node-fetch to 2.6.7
    • ⚑️ Update js ws package to 8.5.0
    • βͺ Revert wrong check to prevent anyHost with allowCredentials (KTOR-2872
  • v1.6.7 Changes

    Published 6 December 2021

    • πŸ— Explicitly specify jdk version for building (KTOR-3358)
    • πŸ‘‰ Make URL constructor public again (KTOR-3514)
  • v1.6.6 Changes

    Published 25 November 2021

    • Some Netty EngineMain properties are not set (KTOR-3464)
    • Session cookie with BASE64 encoding fails to set correct cookie (KTOR-524)
    • corsCheckRequestHeaders false (KTOR-445)
    • ⬇️ DropwizardMetrics does not append baseName to the 'per endpoint'-metrics (KTOR-2527)
    • 🚚 Cookies that added to request got removed if HttpCookies plugin is installed (KTOR-3105)
    • Development mode isn't taken into account for subroutes (KTOR-3316)
    • URL port should be in 0..65535 (KTOR-3314)
    • Basic auth not sending second request (KTOR-3472)
    • ⚑️ Update Kotlin to 1.6.0 (KTOR-3422)
  • v1.6.5 Changes

    Published 2 November 2021

    • ⬆️ Bump kotlin from 1.5.30 to 1.5.31
    • ⬆️ Bump tomcat from 9.0.58 to 9.0.54
    • ⬆️ Bump logback from 1.2.3 to 1.2.6
    • ⬆️ Bump slf4j from 1.7.30 to 1.7.32
    • ⬆️ Bump gson from 2.8.6 to 2.8.9
    • ⬆️ Bump okhttp from 4.6.0 to 4.9.2
    • ⬆️ Bump jackson from 2.12.3 to 2.13.0
    • ⬆️ Bump mockk from 1.10.6 to 1.12.0
    • βž• Add Apple Silicon targets (KTOR-3082)
    • πŸ›  Fix HttpCookies feature overwriting request cookies (KTOR-3105)
    • πŸ”„ Change EAP version scheme (KTOR-3319)
    • ⚑️ Update Netty to 4.1.69.Final (KTOR-472)
    • πŸ‘ Allow wildcard origins for CORS requests (KTOR-316)
    • βž• Add a host check for illegal symbols (KTOR-384)
    • βž• Add check to prevent anyHost with allowCredentials (KTOR-2872)
    • ⬆️ Bump metrics-core from 4.2.3 to 4.2.4
    • ⬆️ Bump webjars-locator-core from 0.47 to 0.48
    • ⬆️ Bump metrics-jvm from 4.2.3 to 4.2.4
    • πŸ›  Fix ProxyType.SOCKS being mapped to Proxy.Type.DIRECT
    • πŸ›  fix grammar (KTOR-3237)
    • ⬆️ Bump micrometer-core from 1.7.4 to 1.7.5
    • βœ… Ignore flaky testTimeoutPriority (KTOR-3243)
    • πŸ›  Fix npe if static file not found (KTOR-2811)
    • πŸ›  Fix flaky timeoutPriorityTest (KTOR-3243)
    • Fill Content-Length for PartialContent (KTOR-308)
    • πŸ”„ Change default log-level to INFO (KTOR-806)
    • πŸ‘‰ Use require from the stdlib instead of internal require (KTOR-2626)
  • v1.6.4 Changes

    Published 30 September 2021

    • [Auth] [Interceptors] Phase Phase('Challenge') was not registered for this pipeline (KTOR-3156)
    • insertPhaseBefore and insertPhaseAfter lead to different order (KTOR-438)
    • Ktor 1.6.3 crashes on restart due to java.lang.ClassNotFoundException: Didn't find class "java.nio.file.WatchService" on Android 24 (KTOR-3166)
    • GraalVM binary using CIO fails on start "Module function cannot be found" (KTOR-2987)
    • 🌲 Logging in Shutdown thread looks not informative (KTOR-3175)
    • Installed Closeable features not closed when closing HttpClient (KTOR-3116)
    • πŸ“„ Explain method(HttpMethod.Options) in docs for CORS (KTOR-2913)
    • πŸ“œ ContentType.parse("text/html qqq") must fail with error (KTOR-3080)
    • ⚑️ Update JSON topics using code snippets from the 'codeSnippets' project (KTOR-2955)
    • Could not find artifact org.jetbrains.kotlinx:kotlinx-html-jvm:pom:0.7.2 (KTOR-2481)
    • ⚑️ Update the 'Modules' topic (KTOR-1861)
    • βœ… Native engines tests are not run outside of the ktor-client-tests module (KTOR-3069)
    • MultiPartData.readAllParts throws IOException when the epilogue is omitted (KTOR-3173)
    • ⚑️ Update Kotlin and Coroutines Versions (KTOR-3103)
  • v1.6.3 Changes

    Published 26 August 2021

    • Auth Feature: token refresh works only on main thread in Kotlin/Native (KTOR-3055)
    • FUS report mixes up feature id and feature version (KTOR-3067)
    • 🚚 SessionTrackerById - doesn't remove invalid session id (KTOR-2584)
    • Bearer Token is Not Initialized after Clean (KTOR-3008)
    • πŸ‘ ktor does not support semicolon query parameter in Netty Engine (KTOR-2991)
    • HOCON config not resolved in ServletApplicationEngine (KTOR-3020)
    • πŸš€ Deploy WAR on Tomcat (KTOR-2867)
    • πŸ”Œ The wizard missing the Pebble plugin (KTOR-2922)
    • πŸ”§ Wizard: Creating a project without sample code creates Application.configureRouting without routing (KTOR-2581)
    • πŸ”§ The 'Create Run Configuration automatically' option name is cropped (KTOR-2898)
    • InvalidMutabilityException when using withContext and SavedHttpCall (KTOR-2033)
    • πŸ“¦ Reuse Package Search to add dependencies for Ktor Features in Plugin (KTOR-2433)
    • Server: TLSConfigBuilder.addKeyStore: store.getCertificateChain could return null(KTOR-3047)
  • v1.6.2 Changes

    Published 29 July 2021

    • πŸ›  Fixed Ktor plugin raises StackOverflowError when opening some files (KTOR-2950)
    • βž• Added parseUrlEncodedParameters Documentation (KTOR-2843)
    • πŸ›  Fixed CIO WebSockets client incorrectly sends Sec-WebSocket-Extensions header even if empty regression (KTOR-2388)
    • ⚑️ Updated serialization version to 1.2.2 (KTOR-2968)
    • πŸ“š Made code example complete in OAuth documentation(KTOR-1415)
    • βž• Added quick action on a Application.module(...) to generate tests for a given module with all the endpoints in plugin (KTOR-2411)
    • πŸ›  Fixed kotlin.native.concurrent.InvalidMutabilityException: mutation attempt of frozen @72c18 (KTOR-2883)
    • πŸ›  Fixed 404 errors in ktor docs (KTOR-2915)
    • βž• Added prometeus version to Ktor docs (KTOR-2015)
    • πŸ›  Fixed incorrect Structured Markup (LD+JSON) on Ktor docs (KTOR-2943)
    • πŸ›  Fixed confusing/incorrect JWT auth documentation (KTOR-979)
    • πŸ›  Fixed embedded Netty Server with watch paths is crashing in API level 22 when calling stopping server (KTOR-1613)
    • πŸ›  Fixed NoSuchMethodError: No virtual method getParameterCount on Android API 25 and lower regression (KTOR-2924)
    • πŸ›  Fixed X-Forwarded-Port Parse Exception when it contains comma separated list of ports regression (KTOR-2918)
    • πŸ”§ Made CookieConfiguration default to secure configuration and require user opt-out long-standing (KTOR-628)
    • ⚑️ Updated docs section about testing with cookies (KTOR-273)
    • πŸ›  Fixed "ApplicationEngineEnvironment was not started" when accessing application before server is started (KTOR-1854)
    • πŸ“š Updated HTTP/2 documentation (KTOR-267)
    • πŸ›  Fixed NPE in ApacheRequestProducer when "http://" is requested (KTOR-1405)
    • ⚑️ Updated vulnerable versions from sonatype report (KTOR-2875)
    • πŸ›  Fixed ByteReadChannel.readUTF8Line() indefinitely returns empty lines when \r is not followed by \n (KTOR-2868)