summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Wilson <jwilson@squareup.com>2024-04-17 09:25:31 -0400
committerJesse Wilson <jwilson@squareup.com>2024-04-17 09:25:31 -0400
commite274b91f87c113f459826bc0f89853e394b466a8 (patch)
treea3d65e826fdde1a7a30e664fa4b024e99138c7f1
parent689d38873fb1165aeb0ece7fea4306126f8ba74b (diff)
downloadokhttp4-e274b91f87c113f459826bc0f89853e394b466a8.tar.gz
Prepare for release 5.0.0-alpha.13.
-rw-r--r--CHANGELOG.md71
-rw-r--r--build.gradle.kts2
-rw-r--r--docs/changelogs/changelog_4x.md6
3 files changed, 78 insertions, 1 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a36ad2a9d..802ec20a3 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 da74c4002..d1d7b3c0e 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -50,7 +50,7 @@ configure<SpotlessExtension> {
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 d5bfb3036..6019c35da 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].