From 5449fa557cd4f8bb259a9a40ffa42c0ee8bb01f5 Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Wed, 7 Aug 2024 15:59:36 +0900 Subject: [PATCH 1/7] Add release notes for 1.30.0 --- site/release-note.ts | 3 +- site/src/pages/release-notes/1.30.0.mdx | 145 ++++++++++++++++++++++++ 2 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 site/src/pages/release-notes/1.30.0.mdx diff --git a/site/release-note.ts b/site/release-note.ts index c1ce133e59c..33cc1fa198a 100644 --- a/site/release-note.ts +++ b/site/release-note.ts @@ -138,7 +138,7 @@ function parseResult(body: string | null): string[] { const value = chain(lines) .dropWhile((line) => !line.includes('Result:')) .drop() - .filter((line) => !line.match(/([Cc]loses?|[Ff]ix(es)?) /)) + .filter((line) => !line.match(/([Cc]loses?|[Ff]ix(es)?) #[0-9]+/)) .value(); const result: string[] = []; @@ -239,6 +239,7 @@ function renderReleaseNotes(pullRequests: PullRequest[]): string { builder.push(change.results.shift()); } else { const links = change.references.map((id) => `#${id}`).join(' '); + console.log("Change : " + JSON.stringify(change)); if (change.results.length === 0) { builder.push(`- ${change.title} ${links}`); } else { diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx new file mode 100644 index 00000000000..a1113fda39d --- /dev/null +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -0,0 +1,145 @@ +--- +date: 2024-08-07 +--- + +## 🌟 New features + +- **Outlier Detection for Connections**: You can now use to detect unhealthy + connections and close them gracefully. #5751 #5763 + ```java + OutlierDetectingRule rule = + OutlierDetectingRule + .builder() + .onServerError() + .onException(IOException.class) + .onException(WriteTimeoutException, OutlierDetectionDecision.FATAL) + .build(); + + OutlierDetection outlierDetection = + OutlierDetection + .builder(rule) + .counterSlidingWindow(Duration.ofSeconds(10)) + .counterUpdateInterval(Duration.ofSeconds(1)) + .failureRateThreshold(0.5) + .build(); + + ClientFactory + .builder() + // Apply the OutlierDetection to detect and close unhealthy connections + .connectionOutlierDetection(outlierDetection) + ``` +- **Automatic value loader**: You can now use an to (re)load a value atomically, lazily and + asynchronously. #5506 #5590 + ```java + Function> loader = cache -> { + ResponseEntity response = + client.prepare().get("/api/v1/items").asString().execute(); + return response.thenApply(res -> res.content()); + }; + + AsyncLoader asyncLoader = + AsyncLoader + .builder(loader) + .expireAfterLoad(Duration.ofSeconds(60)) + .build(); + asyncLoader.get().join(); + ``` +- **Fallback File Extensions**: You can now set fallback file extensions in . + This feature is useful when you want to map a RESTful URI to a static resource file. #4542 #5806 + ```java + FileService + .builder(rootDir) + // '/app/projects' path could be mapped to '/app/projects.html' + .fallbackFileExtensions("html", "txt") + ... + ``` +- **Sending Arbitrary Content in gRPC-JSON Transcoding**: You can now use [google.api.HttpBody](https://github.com/googleapis/googleapis/blob/master/google/api/httpbody.proto) + to [send arbitrary content](https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/grpc_json_transcoder_filter#sending-arbitrary-content) + in gRPC-JSON transcoding. #5311 #5400 + ```protobuf + rpc ArbitraryHttp(google.api.HttpBody) returns (google.api.HttpBody) { + option (google.api.http) = { + post: "/v1/arbitrary" + }; + } + ``` +- **Zone-Aware Load Balancing**: now supports [zone-aware](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/zone_aware) + load balancing which prioritizes sending traffic to local zones. #5785 #5808 +- **WebSocketService Testing**: You can now use to test . #5538 #5765 + +## 📈 Improvements + +- Armeria client now supports the [`Expect: 100-continue`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100) header. #5646 +- now cancels the associated request immediately. #5800 +- The health checking behavior of is more aligned with Envoy. #5785 +- [Subsets](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/subsets#load-balancer-subsets) now + supports features available in the default load balancer of #5801 +- New headers from Guava have been added to . #5789 +- Armeria is now compatible with Thrift 0.19 and 0.20.0 #5243 #5822 + +## 🛠️ Bug fixes + +- Validation for URI's authority is relaxed to permit underscores (`_`). #5814 #5854 +- A user can send and receive an HTTP request whose `:path` contains the following characters now: #5845 + - TAB (0x09) + - FS (0x1C) + - GS (0x1D) + - RS (0x1E) + - US (0x1F) +- Fixed a potential leak when sending compressed responses. #5858 +- `ResteasyClient` now correctly releases when it is closed. #5833 +- Content decompression exceptions are now properly propagated. #5177 #5620 +- now correctly works with gRPC-Kotlin stubs #5295 #5399 +- Fixed sidebar to occupy at most 40% of the window width. #5091 #5839 + +## 📃 Documentation + +- Added gRPC reverse proxy server example #2353 #5722 + +## ☢️ Breaking changes + +- Modified the behavior of to merge the original + with the new one. + - Instead, is added to replace the entire attributes of . + +## ⛓ Dependencies + +- Curator 5.6.0 → 5.7.0 +- Dropwizard Metrics 4.2.25 → 4.2.26 +- Eureka 2.0.2 → 2.0.3 +- GraphQL Kotlin 7.1.1 → 7.1.4 +- gRPC Java 1.64.0 → 1.65.1 +- Jackson 2.17.1 → 2.17.2 +- Jetty 9.4.54 → 9.4.55, 11.0.20 → 11.0.22, 12.0.8 → 12.0.12 +- Kafka client 3.7.0 → 3.8.0 +- Kubernetes client 6.12.1 → 6.13.1 +- Micrometer 1.13.0 → 1.13.2 +- Micrometer Tracing 1.2.4 → 1.3.2 +- Netty 4.1.110 → 4.1.112 +- Prometheus 1.3.0 → 1.3.1 +- Reactor 3.6.6 → 3.6.8 +- Sangria 4.1.0 → 4.1.1 +- Scala 3.4.1 - 3.4.2 +- ScalaPB 0.11.15 → 0.11.17 +- SLF4J 2.0.12 → 2.0.13 +- Spring 6.1.8 → 6.1.11 +- Spring Boot 3.3.0 → 3.3.2 +- Tomcat 9.0.87 → 9.0.91, 10.1.20 → 10.1.26 + +## 🙇 Thank you + + From eade599f7a531ce15e2a8e4d6ee648462d2a469a Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Wed, 7 Aug 2024 20:26:27 +0900 Subject: [PATCH 2/7] change date --- site/src/pages/release-notes/1.30.0.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx index a1113fda39d..f11ed5250f4 100644 --- a/site/src/pages/release-notes/1.30.0.mdx +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -1,5 +1,5 @@ --- -date: 2024-08-07 +date: 2024-08-08 --- ## 🌟 New features @@ -141,5 +141,6 @@ date: 2024-08-07 'moromin', 'patcher454', 'seonWKim', + 'thomasbruggink', 'trustin' ]} /> From 2ca4e3860fb6c8b173fab0e3f19ab3c53ada5f4d Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Fri, 9 Aug 2024 20:23:13 +0900 Subject: [PATCH 3/7] Update --- site/src/pages/release-notes/1.30.0.mdx | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx index f11ed5250f4..c64ab92541b 100644 --- a/site/src/pages/release-notes/1.30.0.mdx +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -12,7 +12,7 @@ date: 2024-08-08 .builder() .onServerError() .onException(IOException.class) - .onException(WriteTimeoutException, OutlierDetectionDecision.FATAL) + .onException(WriteTimeoutException.class, OutlierDetectionDecision.FATAL) .build(); OutlierDetection outlierDetection = @@ -44,6 +44,18 @@ date: 2024-08-08 .build(); asyncLoader.get().join(); ``` +- **Configurable Response Timeout**: You can now use to configure when a response + timeout start for a client. The timeout can be set when a request is started, a connection is acquired or a + request is fully sent. #4591 #5793 + ```java + ClientFactory + .builder() + .responseTimeoutMode(ResponseTimeoutMode.FROM_START) + // A request will be timed out if the response is not fully received + // within 5 seconds. + .responseTimeout(Duration.ofSeconds(5)) + .build(); + ``` - **Fallback File Extensions**: You can now set fallback file extensions in . This feature is useful when you want to map a RESTful URI to a static resource file. #4542 #5806 ```java @@ -76,6 +88,8 @@ date: 2024-08-08 supports features available in the default load balancer of #5801 - New headers from Guava have been added to . #5789 - Armeria is now compatible with Thrift 0.19 and 0.20.0 #5243 #5822 +- Armeria client now silently ignores content instead of raising an exception when content exists for + a status that indicates empty content. #5823 ## 🛠️ Bug fixes @@ -91,10 +105,14 @@ date: 2024-08-08 - Content decompression exceptions are now properly propagated. #5177 #5620 - now correctly works with gRPC-Kotlin stubs #5295 #5399 - Fixed sidebar to occupy at most 40% of the window width. #5091 #5839 +- `InputStream` created from now correctly raises + an exception if the original is closed with an exception. #5859 +- now correctly returns `true` if a DNS query, a session creation or + a write operation times out. #4935 #5156 ## 📃 Documentation -- Added gRPC reverse proxy server example #2353 #5722 +- Added a gRPC reverse proxy server example. #2353 #5722 ## ☢️ Breaking changes From 83447a408751ce484814d4c145572e1995e643ad Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Fri, 9 Aug 2024 20:31:36 +0900 Subject: [PATCH 4/7] polish --- site/src/pages/release-notes/1.30.0.mdx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx index c64ab92541b..5118cecc5d4 100644 --- a/site/src/pages/release-notes/1.30.0.mdx +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -45,15 +45,15 @@ date: 2024-08-08 asyncLoader.get().join(); ``` - **Configurable Response Timeout**: You can now use to configure when a response - timeout start for a client. The timeout can be set when a request is started, a connection is acquired or a + timeout starts for a client. The timeout can be set when a request is started, a connection is acquired or a request is fully sent. #4591 #5793 ```java ClientFactory .builder() - .responseTimeoutMode(ResponseTimeoutMode.FROM_START) + .responseTimeout(Duration.ofSeconds(5)) // A request will be timed out if the response is not fully received // within 5 seconds. - .responseTimeout(Duration.ofSeconds(5)) + .responseTimeoutMode(ResponseTimeoutMode.FROM_START) .build(); ``` - **Fallback File Extensions**: You can now set fallback file extensions in . @@ -62,7 +62,7 @@ date: 2024-08-08 FileService .builder(rootDir) // '/app/projects' path could be mapped to '/app/projects.html' - .fallbackFileExtensions("html", "txt") + .fallbackFileExtensions("html") ... ``` - **Sending Arbitrary Content in gRPC-JSON Transcoding**: You can now use [google.api.HttpBody](https://github.com/googleapis/googleapis/blob/master/google/api/httpbody.proto) From 49604a041bb60c5ee2e32c91879ed755173f1f5f Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Fri, 9 Aug 2024 20:35:32 +0900 Subject: [PATCH 5/7] remove cruft --- site/release-note.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/site/release-note.ts b/site/release-note.ts index 33cc1fa198a..403a045c853 100644 --- a/site/release-note.ts +++ b/site/release-note.ts @@ -239,7 +239,6 @@ function renderReleaseNotes(pullRequests: PullRequest[]): string { builder.push(change.results.shift()); } else { const links = change.references.map((id) => `#${id}`).join(' '); - console.log("Change : " + JSON.stringify(change)); if (change.results.length === 0) { builder.push(`- ${change.title} ${links}`); } else { From b44795289f57ed7174d1369bb67da09ace8a2ee0 Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Mon, 12 Aug 2024 10:22:37 +0900 Subject: [PATCH 6/7] Update site/src/pages/release-notes/1.30.0.mdx Co-authored-by: minux --- site/src/pages/release-notes/1.30.0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx index 5118cecc5d4..368918d4fc1 100644 --- a/site/src/pages/release-notes/1.30.0.mdx +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -1,5 +1,5 @@ --- -date: 2024-08-08 +date: 2024-08-12 --- ## 🌟 New features From 6909bd204f645e8c8be2201bf854578938cec685 Mon Sep 17 00:00:00 2001 From: Ikhun Um Date: Mon, 12 Aug 2024 10:23:00 +0900 Subject: [PATCH 7/7] Update site/src/pages/release-notes/1.30.0.mdx Co-authored-by: minux --- site/src/pages/release-notes/1.30.0.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/src/pages/release-notes/1.30.0.mdx b/site/src/pages/release-notes/1.30.0.mdx index 368918d4fc1..ce06be42ca2 100644 --- a/site/src/pages/release-notes/1.30.0.mdx +++ b/site/src/pages/release-notes/1.30.0.mdx @@ -117,7 +117,7 @@ date: 2024-08-12 ## ☢️ Breaking changes - Modified the behavior of to merge the original - with the new one. + with the new one. #5802 - Instead, is added to replace the entire attributes of . ## ⛓ Dependencies