From e274b91f87c113f459826bc0f89853e394b466a8 Mon Sep 17 00:00:00 2001 From: Jesse Wilson Date: Wed, 17 Apr 2024 09:25:31 -0400 Subject: [PATCH] Prepare for release 5.0.0-alpha.13. --- CHANGELOG.md | 71 +++++++++++++++++++++++++++++++++ build.gradle.kts | 2 +- docs/changelogs/changelog_4x.md | 6 +++ 3 files changed, 78 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a36ad2a9d13e..802ec20a3104 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,72 @@ Change Log See [4.x Change log](https://square.github.io/okhttp/changelogs/changelog_4x/) for the stable version changelogs. +## Version 5.0.0-alpha.13 + +_2024-04-16_ + + * Breaking: Tag unstable new APIs as `@ExperimentalOkHttpApi`. We intend to release OkHttp 5.0 + without stabilizing these new APIs first. + + Do not use these experimental APIs in modules that may be executed using a version of OkHttp + different from the version that the module was compiled with. Do not use them in published + libraries. Do not use them if you aren't willing to track changes to them. + + * Breaking: Drop support for Kotlin Multiplatform. + + We planned to support multiplatform in OkHttp 5.0, but after building it, we weren't happy with + the implementation trade-offs. We can't use our HTTP client engine on Kotlin/JS, and we weren't + prepared to build a TLS API for Kotlin/Native. + + We'd prefer a multiplatform HTTP client API that's backed by OkHttp on Android and JVM, and + other engines on other platforms. [Ktor] does this pretty well today! + + * Breaking: Use `kotlin.time.Duration` in APIs like `OkHttpClient.Builder.callTimeout()`. This + update also drops support for the `DurationUnit` functions introduced in earlier alpha releases + of OkHttp 5. + + * Breaking: Reorder the parameters in the Cache constructor that was introduced in 5.0.0-alpha.3. + + * New: `Request.Builder.cacheUrlOverride()` customizes the cache key used for a request. This can + be used to make canonical URLs for the cache that omit insignificant query parameters or other + irrelevant data. + + This feature may be used with `POST` requests to cache their responses. In such cases the + request body is not used to determine the cache key, so you must manually add cache-relevant + data to the override URL. For example, you could add a `request-body-sha256` query parameter so + requests with the same POST data get the same cache entry. + + * New: `HttpLoggingInterceptor.redactQueryParams()` configures the query parameters to redact + in logs. For best security, don't put sensitive information in query parameters. + + * New: `ConnectionPool.setPolicy()` configures a minimum connection pool size for a target + address. Use this to proactively open HTTP connections. + + Connections opened to fulfill this policy are subject to the connection pool's + `keepAliveDuration` but do not count against the pool-wide `maxIdleConnections` limit. + + This feature increases the client's traffic and the load on the server. Talking to your server's + operators before adopting it. + + * New in okhttp-android: `HttpLoggingInterceptor.androidLogging()` and + `LoggingEventListener.androidLogging()` write HTTP calls or events to Logcat. + + * New: `OkHttpClient.webSocketCloseTimeout` configures how long a web socket connection will wait + for a graceful shutdown before it performs an abrupt shutdown. + + * Fix: Honor `RequestBody.isOneShot()` in `MultipartBody` + + * Fix in `okhttp-coroutines`: Don't leak response bodies in `executeAsync()`. We had a bug where + we didn't call `Response.close()` if the coroutine was canceled before its response was + returned. + + * Upgrade: [Okio 3.9.0][okio_3_9_0]. + + * Upgrade: [Kotlin 1.9.23][kotlin_1_9_23]. + + * Upgrade: [UnicodeĀ® IDNA 15.1.0][idna_15_1_0] + + ## Version 5.0.0-alpha.12 _2023-12-17_ @@ -357,20 +423,25 @@ Note that this was originally released on 2020-10-06 as 4.10.0-RC1. The only cha release is the version name. +[Ktor]: https://ktor.io/ [assertk]: https://github.com/willowtreeapps/assertk [graalvm]: https://www.graalvm.org/ [graalvm_21]: https://www.graalvm.org/release-notes/21_0/ [graalvm_22]: https://www.graalvm.org/release-notes/22_2/ +[idna_15_1_0]: https://www.unicode.org/reports/tr46/#Modifications [kotlin_1_4_20]: https://github.com/JetBrains/kotlin/releases/tag/v1.4.20 [kotlin_1_5_31]: https://github.com/JetBrains/kotlin/releases/tag/v1.5.31 [kotlin_1_6_10]: https://github.com/JetBrains/kotlin/releases/tag/v1.6.10 [kotlin_1_6_21]: https://github.com/JetBrains/kotlin/releases/tag/v1.6.21 [kotlin_1_7_10]: https://github.com/JetBrains/kotlin/releases/tag/v1.7.10 [kotlin_1_9_21]: https://github.com/JetBrains/kotlin/releases/tag/v1.9.21 +[kotlin_1_9_23]: https://github.com/JetBrains/kotlin/releases/tag/v1.9.23 +[loom]: https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html [okio_2_9_0]: https://square.github.io/okio/changelog/#version-290 [okio_3_0_0]: https://square.github.io/okio/changelog/#version-300 [okio_3_1_0]: https://square.github.io/okio/changelog/#version-310 [okio_3_2_0]: https://square.github.io/okio/changelog/#version-320 [okio_3_7_0]: https://square.github.io/okio/changelog/#version-370 +[okio_3_9_0]: https://square.github.io/okio/changelog/#version-390 [rfc_8305]: https://tools.ietf.org/html/rfc8305 [uts46]: https://www.unicode.org/reports/tr46 diff --git a/build.gradle.kts b/build.gradle.kts index da74c4002860..d1d7b3c0ecd1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -50,7 +50,7 @@ configure { allprojects { group = "com.squareup.okhttp3" - version = "5.0.0-SNAPSHOT" + version = "5.0.0-alpha.13" repositories { mavenCentral() diff --git a/docs/changelogs/changelog_4x.md b/docs/changelogs/changelog_4x.md index d5bfb30361bd..6019c35da441 100644 --- a/docs/changelogs/changelog_4x.md +++ b/docs/changelogs/changelog_4x.md @@ -6,9 +6,12 @@ OkHttp 4.x Change Log _2023-10-16_ * Fix: Don't hang taking headers for HTTP 103 responses. + * Fix: Recover gracefully when a cache entry's certificate is corrupted. + * Fix: Fail permanently when there's a failure loading the bundled public suffix database. This is the dataset that powers `HttpUrl.topPrivateDomain()`. + * Fix: Immediately update the connection's flow control window instead of waiting for the receiving stream to process it. @@ -16,9 +19,12 @@ _2023-10-16_ calls and that can receive data faster than they can process it. Previously, OkHttp limited HTTP/2 to 16 MiB of unacknowledged data per connection. With this fix there is a limit of 16 MiB of unacknowledged data per stream and no per-connection limit. + * Fix: Don't operate on a connection after it's been returned to the pool. This race occurred on failed web socket connection attempts. + * Upgrade: [Okio 3.6.0][okio_3_6_0]. + * Upgrade: [Kotlin 1.8.21][kotlin_1_8_21].