Skip to content

Commit

Permalink
Add release notes for 1.30.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ikhoon committed Aug 7, 2024
1 parent 0a37cfe commit e659b49
Show file tree
Hide file tree
Showing 2 changed files with 147 additions and 1 deletion.
3 changes: 2 additions & 1 deletion site/release-note.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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[] = [];
Expand Down Expand Up @@ -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 {
Expand Down
145 changes: 145 additions & 0 deletions site/src/pages/release-notes/1.30.0.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
---
date: 2024-08-07
---

## 🌟 New features

- **Outlier Detection for Connections**: You can now use <type://OutlierDetection> 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 <type://AsyncLoader> to (re)load a value atomically, lazily and
asynchronously. #5506 #5590
```java
Function<String, CompletableFuture<String>> loader = cache -> {
ResponseEntity<String> response =
client.prepare().get("/api/v1/items").asString().execute();
return response.thenApply(res -> res.content());
};

AsyncLoader<String> asyncLoader =
AsyncLoader
.builder(loader)
.expireAfterLoad(Duration.ofSeconds(60))
.build();
asyncLoader.get().join();
```
- **Fallback File Extensions**: You can now set fallback file extensions in <type://FileService>.
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 '<rootDir>/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**: <type://XdsEndpointGroup> 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 <type://ServerExtension#webSocketClient()> to test <type://WebSocketService>. #5538 #5765

## 📈 Improvements

- Armeria client now supports the [`Expect: 100-continue`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/100) header. #5646
- <type://ClientRequestContext#cancel()> now cancels the associated request immediately. #5800
- The health checking behavior of <type://XdsEndpointGroup> 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 <type://XdsEndpointGroup> #5801
- New headers from Guava have been added to <type://HttpHeaderNames>. #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 <type://ClientFactory> when it is closed. #5833
- Content decompression exceptions are now properly propagated. #5177 #5620
- <type://@Blocking> now correctly works with gRPC-Kotlin stubs #5295 #5399
- Fixed <type://DocService> 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 <type://Endpoint#withAttrs(Attributes)> to merge the original <type://Attributes>
with the new one.
- Instead, <type://Endpoint#replaceAttrs(Attributes)> is added to replace the entire attributes of <type://Endpoint>.

## 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

<ThankYou usernames={[
'Be-poz',
'Dogacel',
'KarboniteKream',
'eottabom',
'ikhoon',
'injae-kim',
'jrhee17',
'kojilin',
'minwoox',
'moromin',
'patcher454',
'seonWKim',
'trustin'
]} />

0 comments on commit e659b49

Please sign in to comment.