Skip to content

fix(deps): update ktor monorepo to v3 (major) #686

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Oct 10, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
io.ktor:ktor-server-resources 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-server-netty 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-server-content-negotiation 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-server-cors 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-server-core 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-server-auth 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-serialization-kotlinx-json 2.3.12 -> 3.1.2 age adoption passing confidence
io.ktor:ktor-client-apache5 2.3.12 -> 3.1.2 age adoption passing confidence

Release Notes

ktorio/ktor (io.ktor:ktor-server-resources)

v3.1.2

Compare Source

Published 27 March 2025

Improvements
Bugfixes
  • URL-safe base64 decoding problem (KTOR-8292)
  • Auth: AuthTokenHolder.clearToken executed in the middle of an ongoing token update doesn't actually clear (KTOR-8312)
  • Android: "Array has more than one element" error when starting a server with release build (KTOR-7298)
  • WebSockets: extensions in sec-websocket-extensions header must be separated by comma (KTOR-6384)
  • OkHttp: Cancelling of SSESession.incoming flow doesn't cancel connection (KTOR-8244)

v3.1.1

Compare Source

Published 24 February 2025

Improvements
  • Logging: messages are printed per line with OkHttp logger format (KTOR-8218)
  • WebSocket and SSE don't respect connection timeout set in the HttpTimeout plugin (KTOR-8206)
Bugfixes
  • formData: implementation of copying Source is broken (KTOR-8210)
  • Race condition when writing to a buffer leads to NPE inside CIOReaderKt.readFrom (KTOR-8105)
  • TLS client: IOException while writing to a closed TLS socket since 3.0.0 (KTOR-7860)
  • Exception thrown in onCallRespond makes the client wait for response indefinitely (KTOR-7139)
  • HttpCache: Cache isn't updated when Vary header for 304 response matches but not equal to Vary for 200 response (KTOR-7104)
  • OOM on SourceByteReadChannel for large input (KTOR-8190)
  • ArrayIndexOutOfBounds kotlinx-io (KTOR-8096)
  • NPE in readBuffer (KTOR-8086)
  • JS/WASM fails with "IllegalStateException: Content-Length mismatch" on requesting gzipped content (KTOR-7934)
  • Resources: a / route isn't resolved when there is a sibling staticResources (KTOR-6671)
  • Server accepts \r without a following \n as a valid line terminator in chunked transfer encoding (KTOR-8015)

v3.1.0

Compare Source

Published 11 February 2025

Features
  • Add reconnection in ClientSSESession (KTOR-6242)
  • Add heartbeat to SSE (KTOR-7908)
  • Add serialization for SSE (KTOR-7435)
  • Support WebSockets in Curl engine (KTOR-5199)
  • Support conversion between byte channel interfaces and kotlinx-io primitives (KTOR-7327)
  • Support CIO server on WasmJS and JS targets (KTOR-865)
  • Logging: Format log like OkHttp client does (KTOR-7806)
  • Support static linking for curl on all platforms (KTOR-6754)
  • Support ARM target in Ktor client with Kotlin/Native and Curl (KTOR-4570)
  • Unix Domain Socket Support for Native Targets (KTOR-6960)
  • Support receiving multipart data with Ktor client (KTOR-6632)
  • Client CIO engine support for wasm-js and js (KTOR-7675)
  • Support NodeJs target for ktor-network (KTOR-6004)
Improvements
  • Auth: BasicAuthProvider caches credentials until process death (KTOR-7775)
  • CallLogging: Unhelpful log output "Application started: ..." (KTOR-7797)
  • Add operator contains to ContentType objects (KTOR-8145)
  • Darwin: Ambiguous DarwinHttpRequestException for SSL Pinning failure (KTOR-6759)
  • Introduce ServerSocket.port to simplify port access for the bound server (KTOR-8136)
  • Java, Js, Darwin: Response header Sec-WebSocket-Protocol is missing (KTOR-6970)
  • Fail to parse url: file:/path/to/file.txt (KTOR-6709)
  • Auth: Make re-auth/refresh status codes configurable (KTOR-7644)
  • Add media type for Yaml (KTOR-8064)
  • Logging: HTTP method is logged with the class name (KTOR-8011)
  • Uncaught cannot write to a channel errors from ws-pinger (KTOR-8008)
  • Apache5 client: Upgrade HttpClient to 5.4 (KTOR-8080)
  • Swagger: Add deepLinking configuration (KTOR-8074)
  • Access to the configuration options of a HttpClient plugin to tweak or wrap them with additional logic (KTOR-7213)
  • Don't publish internal test artifacts (KTOR-8058)
  • Micrometer: Add UptimeMetrics to standard meterBinders (KTOR-8061)
  • MicrometerMetrics: Do not write unknown HTTP method names to metrics (KTOR-7658)
  • Update to Kotlin 2.1.0 (KTOR-7866)
  • ByteWriteChannel is missing writeFloat()/readFloat() (KTOR-7651)
  • Engine exclusion from clientTests is confusing (KTOR-7723)
  • UrlBuilder: Support telephone scheme (KTOR-4816)
  • Swagger UI: Missing Favicon while browsing the UI (KTOR-7893)
  • ContentNegotiation client plugin: no way to opt out of Accept on a per-request basis (KTOR-7722)
  • receiveMultipart throws IllegalStateException instead of UnsupportedMediaTypeException (KTOR-7470)
  • Implement a suspending version of EmbeddedServer.start(wait=true) (KTOR-7459)
  • Allow to Disable Body Decompression on the Server for a specific call (KTOR-7679)
  • UDPSocketBuilder missing bind overload with hostName and port (KTOR-7663)
  • Make Url class @​Serializable and JVM Serializable (KTOR-7620)
  • Improve parsing of supported media types (MIME types) (KTOR-7586)
  • Migrate to kotlin.AutoCloseable (KTOR-7606)
Bugfixes
  • ByteChannel read issue on min > 1 (KTOR-8172)
  • CIO Server Engine fails for requests with more than 64 headers (KTOR-8164)
  • OutOfMemoryError when sending a large binary file through ByteReadChannel converted from InputStream (KTOR-6185)
  • Native Windows tests failing due to port exhaustion (KTOR-7392)
  • Unable to close socket with open read/write channels on Native (KTOR-8144)
  • Jetty idleTimeout not working (KTOR-8138)
  • Fix concurrent flush and close in the reader (KTOR-8133)
  • Socket.accept doesn't throw an exception on closing a socket on Native (KTOR-8135)
  • "AbortError: BodyStreamBuffer was aborted" error when canceling parent job (KTOR-7734)
  • Race condition when writing to a buffer leads to NPE inside CIOReaderKt.readFrom (KTOR-8105)
  • ArrayIndexOutOfBounds kotlinx-io (KTOR-8096)
  • NPE in readBuffer (KTOR-8086)
  • JS/WASM fails with "IllegalStateException: Content-Length mismatch" on requesting gzipped content (KTOR-7934)
  • SessionStorage.read() is called for non-authenticated routes and static assets (KTOR-7194)
  • Read mutipart upload regression from 2.x to 3.x (KTOR-8082)
  • HttpRequestRetry: race condition for isClosedForRead leads to EOFException: Channel is already closed (KTOR-8051)
  • ktor-client-curl artifacts aren’t published after EAP 1146 (KTOR-8091)
  • DoubleReceive: NullPointerException caused by race condition (KTOR-8045)
  • Uncaught ClosedWatchServiceException exception thrown by finalizer when closing the server (KTOR-7963)
  • Curl: Error linking curl in linkDebugExecutableLinuxX64 on macOS (KTOR-6361)
  • ktor-server-core: Test files are part of the distribution code (KTOR-8003)
  • Windows: undefined symbols in linker when ktor-client-curl is used (KTOR-4307)
  • SaveBodyPlugin: UninitializedPropertyAccessException when reading response body within receivePipeline (KTOR-7952)

v3.0.3

Compare Source

Published 18 December 2024

Bugfixes
  • "Module not found" errors when executing browserProductionWebpack task since 3.0.2 (KTOR-7912)
  • Darwin: "IllegalStateException: Content-Length mismatch" on requesting gzipped content (KTOR-7943)
  • JS/WASM fails with "IllegalStateException: Content-Length mismatch" on requesting gzipped content (KTOR-7934)
  • FormFieldLimit is overwritten by default arg (KTOR-7946)
  • A Performance issue reading with ByteReadChannel.readUTF8LineTo request body (KTOR-7941)
  • Installing HttpCache before ContentEncoding prevents response body to be decoded (KTOR-7830)
  • TestApplication.stop() doesn't stop the application anymore (KTOR-7682)
  • File is not commited after closing writeChannel() of the file (KTOR-7845)

v3.0.2

Compare Source

Published 3 December 2024

Bugfixes
  • ServletResponseBody is corrupted due to the wrong offset (KTOR-7904)
  • File is not commited after closing writeChannel() of the file (KTOR-7845)
  • CIO: Response body truncated because read amount of bytes isn't compared against Content-Length (KTOR-7828)
  • HttpCache: IndexOutOfBoundsException on malformed Cache-Control header (KTOR-7172)
  • call.respondSource returns empty response but passes in tests (KTOR-7683)
  • ByteReadChannel.{readShort/readInt/readLong} leads to infinite loop when required bytes distributed in flush and read buffers (KTOR-7746)
  • Routing: ContentType.match doesn't match wildcard content types (KTOR-7278)
  • Connections aren't released properly if there are multiple parallel connections to the same address (KTOR-7777)
  • FileItem.streamProvider is deprecated and doesn't have implementation (KTOR-7731)
  • MergedApplicationConfig.toMap replaces nested configs completely without merging (KTOR-7008)
  • Digest Auth: Ktor 3.0.1 uses the wrong "nc" value to calculate digest (KTOR-7681)
  • JS: "ReferenceError: require is not defined" when compiling to ES Module (KTOR-6158)
  • Chunked transfer encoding failure not caught with retry (KTOR-7618)
  • HttpCookies: IllegalArgumentException when server returns a raw cookie with not allowed characters (KTOR-7469)
  • DefaultRequest: Content-Type header of default request is not overridable (KTOR-6946)
Improvements
  • Support binary (Smile) encoding in JacksonConverter (KTOR-7726)
  • ServiceLoader.load call is slow on Android (KTOR-7698)

v3.0.1

Compare Source

Published 29 October 2024

Bugfixes
  • Remove space from the default client user agent (KTOR-7655)
  • Url.segments throws on URLs with root path (KTOR-7625)
  • Digest Auth does not implement nc parameter correctly according to RFC 7616 (KTOR-4318)
  • about:blank URL should be parsed correctly as about:blank (KTOR-7410)
  • ByteReadChannel.{readShort/readInt/readLong} could lead to CPU-bound indefinite loop since 3.0.0 (KTOR-7571)
  • CIO: Requests face connection timeouts when executed on the Android main dispatcher (KTOR-6803)
  • receiveMultipart fails with "IOException: Failed to parse multipart" when content-type is capitalized (KTOR-7596)
Improvements
  • WebSockets logging: The plugin calls toString() unnecessarily on transformed response body (KTOR-7623)
  • INFO log message with all server interceptors on server startup (KTOR-7326)
  • Digest auth: username and cnonce parameters aren't surrounded with quotes (KTOR-7561)
  • ContentType.fromFilePath for newer file formats HEIC, AVIF, HEIF (KTOR-7536)
  • Support missing native targets in ktor-serialization-kotlinx-xml (KTOR-7583)

v3.0.0

Compare Source

Published 9 October 2024

Bugfixes
  • Darwin: The maxFrameSize option has no effect (KTOR-6963)
  • KotlinReflectionInternalError (createClientPlugin) when running release APK on Android (KTOR-7479)
  • Netty: UnsupportedOperationException is thrown when responding in CallSetup and CORS plugin is installed (KTOR-4433)
  • MicrometerMetrics: Prometheus meter registry 1.13.0 generates configuration warning (KTOR-7035)
  • Websockets/Auth: ProtocolException when requesting protected WebSockets endpoint (KTOR-7363)
  • Data truncated in receiveParameters and receiveMultipart (KTOR-7201)
  • The pathSegments returns empty strings for trailing slashes (KTOR-4402)
  • HttpRequestRetry: exponential delay doesn't work for delays <= 1 second (KTOR-7294)
  • JS browser: "Error: HttpClientCall expected" on HTTP request when targeting es2015 (KTOR-6882)
  • Incomplete write using io.ktor.util.cio.FileChannelsKt#writeChannel (KTOR-1618)
  • response.content.copyAndClose(targetFile.writeChannel()) sometimes loses some bytes (KTOR-3003)
  • ByteWriteChannel.flush is not Waiting Until Flushing the Internal Buffer to the Destination (KTOR-3102)
  • CORS check fails when the Origin header has a value without trailing slash (KTOR-5936)
  • Closing socket and selector leaks descriptor on native (KTOR-7255)
  • ConnectionUtilsNative leaks descriptors on error (KTOR-6977)
  • withTimeout doesn't cancel socket connection on native (KTOR-5289)
  • MockEngine: the ability to set dispatcher is removed (KTOR-6417)
Improvements
  • Misleading readBytes method name (KTOR-6596)
  • Remove reflection utils used only on JVM target from common source set (KTOR-7540)
  • Weak security algorithm (MD5) in FileCacheStorage (KTOR-6589)
  • Missing constants for AcceptEncoding (KTOR-6412)
  • Add respondFile overload with Path parameters (KTOR-7202)
  • MalformedInputException confusingly is a Throwable but not an Exception (KTOR-7316)
  • CSRF: The allowOrigin method enables the Origin Header validation (KTOR-6695)
  • Auth: Drop marker interface requirements (KTOR-7323)
  • Routing: Support accessing the request body in RouteSelector (KTOR-7084)
  • Make Cookie class Serializable (KTOR-6258)
  • Make the internal Route.swaggerUI method public (KTOR-6491)
  • Ktor clients and servers should use Dispatchers.IO.limitedParallelism(...) wherever possible (KTOR-6462)
Features
  • Support androidNative targets (KTOR-7289)
  • Provide the API that simplifies disabling CORS for testing purposes (KTOR-3329)
  • Add support for mingw to ktor-network in order to make server and client work on windows (KTOR-4080)

v2.3.13

Compare Source

Published 20 November 2024

Bugfixes
  • CIO: Requests face connection timeouts when executed on the Android main dispatcher (KTOR-6803)
  • io.ktor.util.TextKt.chomp doesn't work on strings with more than one character (KTOR-7209)
  • "java.lang.IllegalArgumentException: Failed requirement." in SelectorManagerSupport (KTOR-2914)
  • Backport fix for CVE-2024-49580 to Ktor 2 (KTOR-7727)
Improvements
  • Replace custom withTimeout implementation using WeakTimeoutQueue with coroutines.withTimeout (KTOR-3658)
  • Add watchosDeviceArm64 target (KTOR-6368)

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from 9334c28 to 0a5b4d6 Compare October 29, 2024 22:50
@lberrymage lberrymage force-pushed the main branch 2 times, most recently from d35a51f to f145ebe Compare November 6, 2024 23:18
@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch 2 times, most recently from e1cad6c to a3f059e Compare November 7, 2024 22:19
@lberrymage lberrymage added the blocked Unable to proceed without action elsewhere label Nov 7, 2024
@lberrymage
Copy link
Member

Blocked on InsertKoinIO/koin#1716.

@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from a3f059e to 6f9a209 Compare November 14, 2024 16:28
@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from 6f9a209 to 071d140 Compare December 3, 2024 20:25
Copy link
Contributor Author

renovate bot commented Dec 3, 2024

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: gradle/libs.versions.toml
Command failed: ./gradlew --console=plain --dependency-verification lenient -q --write-verification-metadata sha256 dependencies

FAILURE: Build completed with 2 failures.

1: Task failed with an exception.
-----------
* Where:
Build file '/tmp/renovate/repos/github/accrescent/parcelo/build.gradle.kts' line: 5

* What went wrong:
Plugin [id: 'io.ktor.plugin', version: '3.1.2', apply: false] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (No included builds contain this plugin)
- Plugin Repositories (could not resolve plugin artifact 'io.ktor.plugin:io.ktor.plugin.gradle.plugin:3.1.2')
  Searched in the following repositories:
    Gradle Central Plugin Repository

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
==============================================================================

2: Task failed with an exception.
-----------
* Where:
Build file '/tmp/renovate/repos/github/accrescent/parcelo/build.gradle.kts' line: 5

* What went wrong:
Plugin [id: 'io.ktor.plugin', version: '3.1.2', apply: false] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (No included builds contain this plugin)
- Plugin Repositories (could not resolve plugin artifact 'io.ktor.plugin:io.ktor.plugin.gradle.plugin:3.1.2')
  Searched in the following repositories:
    Gradle Central Plugin Repository

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.
==============================================================================

BUILD FAILED in 1m 10s

@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from 071d140 to c941e78 Compare December 19, 2024 00:42
@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from c941e78 to d8746fd Compare February 11, 2025 19:39
@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from d8746fd to 680b182 Compare February 24, 2025 19:44
@renovate renovate bot force-pushed the renovate/major-ktor-monorepo branch from 680b182 to ade0753 Compare March 27, 2025 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked Unable to proceed without action elsewhere
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant