Skip to content

Commit cc40c0a

Browse files
authored
prep release: v2.2.1
1 parent d8c9bf0 commit cc40c0a

22 files changed

+2503
-996
lines changed

.changesets/config_renee_warn_on_coprocessor_context_true.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

.changesets/docs_moist_axle_thunderstorm_bugle.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changesets/fix_bnjjj_rh_845.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changesets/fix_caroline_client_header.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changesets/fix_caroline_demote_log_line.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

.changesets/fix_caroline_redis_conn_leak.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.changesets/fix_caroline_telemetry_http_route.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changesets/fix_garypen_dedup_less_clone.md

Lines changed: 0 additions & 9 deletions
This file was deleted.

.changesets/fix_lb_connect_progressive_override.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changesets/maint_garypen_build_base_image.md

Lines changed: 0 additions & 7 deletions
This file was deleted.

.changesets/maint_renee_apollo_compiler_1_28.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,116 @@
22

33
This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html).
44

5+
# [2.2.1] - 2025-05-13
6+
7+
## 🐛 Fixes
8+
9+
### Redis connection leak on schema changes ([PR #7319](https://github.com/apollographql/router/pull/7319))
10+
11+
The router performs a 'hot reload' whenever it detects a schema update. During this reload, it effectively instantiates a new internal router, warms it up (optional), redirects all traffic to this new router, and drops the old internal router.
12+
13+
This change fixes a bug in that "drop" process where the Redis connections are never told to terminate, even though the Redis client pool is dropped. This leads to an ever-increasing number of inactive Redis connections as each new schema comes in and goes out of service, which eats up memory.
14+
15+
The solution adds a new up-down counter metric, `apollo.router.cache.redis.connections`, to track the number of open Redis connections. This metric includes a `kind` label to discriminate between different Redis connection pools, which mirrors the `kind` label on other cache metrics (ie `apollo.router.cache.hit.time`).
16+
17+
By [@carodewig](https://github.com/carodewig) in https://github.com/apollographql/router/pull/7319
18+
19+
### Propagate client name and version modifications through telemetry ([PR #7369](https://github.com/apollographql/router/pull/7369))
20+
21+
The router accepts modifications to the client name and version (`apollo::telemetry::client_name` and `apollo::telemetry::client_version`), but those modifications are not currently propagated through the telemetry layers to update spans and traces.
22+
23+
This PR moves where the client name and version are bound to the span, so that the modifications from plugins **on the `router` service** are propagated.
24+
25+
By [@carodewig](https://github.com/carodewig) in https://github.com/apollographql/router/pull/7369
26+
27+
### Progressive overrides are not disabled when connectors are used ([PR #7351](https://github.com/apollographql/router/pull/7351))
28+
29+
Prior to this fix, introducing a connector disabled the progressive override plugin.
30+
31+
By [@lennyburdette](https://github.com/lennyburdette) in https://github.com/apollographql/router/pull/7351
32+
33+
### Avoid unnecessary cloning in the deduplication plugin ([PR #7347](https://github.com/apollographql/router/pull/7347))
34+
35+
The deduplication plugin always cloned responses, even if there were not multiple simultaneous requests that would benefit from the cloned response.
36+
37+
We now check to see if deduplication will provide a benefit before we clone the subgraph response.
38+
39+
There was also an undiagnosed race condition which meant that a notification could be missed. This would have resulted in additional work being performed as the missed notification would have led to another subgraph request.
40+
41+
By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/7347
42+
43+
### Spans should only include path in `http.route` ([PR #7390](https://github.com/apollographql/router/pull/7390))
44+
45+
Per the [OpenTelemetry spec](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/#http-route), the `http.route` should only include "the matched route, that is, the path template used in the format used by the respective server framework."
46+
47+
The router currently sends the full URI in `http.route`, which can be high cardinality (ie `/graphql?operation=one_of_many_values`). After this change, the router will only include the path (`/graphql`).
48+
49+
By [@carodewig](https://github.com/carodewig) in https://github.com/apollographql/router/pull/7390
50+
51+
### Decrease log level for JWT authentication failure ([PR #7396](https://github.com/apollographql/router/pull/7396))
52+
53+
A recent change inadvertently increased the log level of JWT authentication failures from `info` to `error`. This reverts that change returning it to the previous behavior.
54+
55+
By [@carodewig](https://github.com/carodewig) in https://github.com/apollographql/router/pull/7396
56+
57+
### Avoid fractional decimals when generating `apollo.router.operations.batching.size` metrics for GraphQL request batch sizes ([PR #7306](https://github.com/apollographql/router/pull/7306))
58+
59+
Corrects the calculation of the `apollo.router.operations.batching.size` metric to reflect accurate batch sizes rather than occasionally returning fractional numbers.
60+
61+
By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/7306
62+
63+
## 📃 Configuration
64+
65+
### Log warnings for deprecated coprocessor `context` configuration usage ([PR #7349](https://github.com/apollographql/router/pull/7349))
66+
67+
`context: true` is an alias for `context: deprecated` but should not be used. The router now logs a runtime warning on startup if you do use it.
68+
69+
Instead of:
70+
71+
```yaml
72+
coprocessor:
73+
supergraph:
74+
request:
75+
context: true #
76+
```
77+
78+
Explicitly use `deprecated` or `all`:
79+
80+
```yaml
81+
coprocessor:
82+
supergraph:
83+
request:
84+
context: deprecated # ✅
85+
```
86+
87+
See [the 2.x upgrade guide](https://www.apollographql.com/docs/graphos/routing/upgrade/from-router-v1#context-keys-for-coprocessors) for more detailed upgrade steps.
88+
89+
By [@goto-bus-stop](https://github.com/goto-bus-stop) in https://github.com/apollographql/router/pull/7349
90+
91+
## 🛠 Maintenance
92+
93+
### Linux: Compatibility with glibc 2.28 or newer ([PR #7355](https://github.com/apollographql/router/pull/7355))
94+
95+
The default build images provided in our CI environment have a relatively modern version of `glibc` (2.35). This means that on some distributions, notably those based around RedHat, it wasn't possible to use our binaries since the version of `glibc` was older than 2.35.
96+
97+
We now maintain a build image which is based on a distribution with `glibc` 2.28. This is old enough that recent releases of either of the main Linux distribution families (Debian and RedHat) can make use of our binary releases.
98+
99+
By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/7355
100+
101+
### Reject `@skip`/`@include` on subscription root fields in validation ([PR #7338](https://github.com/apollographql/router/pull/7338))
102+
103+
This implements a [GraphQL spec RFC](https://github.com/graphql/graphql-spec/pull/860), rejecting subscriptions in validation that can be invalid during execution.
104+
105+
By [@goto-bus-stop](https://github.com/goto-bus-stop) in https://github.com/apollographql/router/pull/7338
106+
107+
## 📚 Documentation
108+
109+
### Query planning best practices ([PR #7263](https://github.com/apollographql/router/pull/7263))
110+
111+
Added a new page under Routing docs about [Query Planning Best Practices](https://www.apollographql.com/docs/graphos/routing/query-planning/query-planning-best-practices).
112+
113+
By [@smyrick](https://github.com/smyrick) in https://github.com/apollographql/router/pull/7263
114+
5115
# [2.2.0] - 2025-04-28
6116

7117
## 🚀 Features

Cargo.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ dependencies = [
191191

192192
[[package]]
193193
name = "apollo-federation"
194-
version = "2.2.1-rc.1"
194+
version = "2.2.1"
195195
dependencies = [
196196
"apollo-compiler",
197197
"apollo-federation",
@@ -256,7 +256,7 @@ dependencies = [
256256

257257
[[package]]
258258
name = "apollo-router"
259-
version = "2.2.1-rc.1"
259+
version = "2.2.1"
260260
dependencies = [
261261
"ahash",
262262
"anyhow",
@@ -428,7 +428,7 @@ dependencies = [
428428

429429
[[package]]
430430
name = "apollo-router-benchmarks"
431-
version = "2.2.1-rc.1"
431+
version = "2.2.1"
432432
dependencies = [
433433
"apollo-parser",
434434
"apollo-router",

apollo-federation/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-federation"
3-
version = "2.2.1-rc.1"
3+
version = "2.2.1"
44
authors = ["The Apollo GraphQL Contributors"]
55
edition = "2024"
66
description = "Apollo Federation"

apollo-router-benchmarks/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-router-benchmarks"
3-
version = "2.2.1-rc.1"
3+
version = "2.2.1"
44
authors = ["Apollo Graph, Inc. <packages@apollographql.com>"]
55
edition = "2021"
66
license = "Elastic-2.0"

apollo-router/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "apollo-router"
3-
version = "2.2.1-rc.1"
3+
version = "2.2.1"
44
authors = ["Apollo Graph, Inc. <packages@apollographql.com>"]
55
repository = "https://github.com/apollographql/router/"
66
documentation = "https://docs.rs/apollo-router"
@@ -58,7 +58,7 @@ snapshot = ["axum-server", "serde_regex"]
5858
[dependencies]
5959
anyhow = "1.0.86"
6060
apollo-compiler.workspace = true
61-
apollo-federation = { path = "../apollo-federation", version = "=2.2.1-rc.1" }
61+
apollo-federation = { path = "../apollo-federation", version = "=2.2.1" }
6262
async-compression = { version = "0.4.6", features = [
6363
"tokio",
6464
"brotli",

dockerfiles/tracing/docker-compose.datadog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: "3.9"
22
services:
33
apollo-router:
44
container_name: apollo-router
5-
image: ghcr.io/apollographql/router:v2.2.1-rc.1
5+
image: ghcr.io/apollographql/router:v2.2.1
66
volumes:
77
- ./supergraph.graphql:/etc/config/supergraph.graphql
88
- ./router/datadog.router.yaml:/etc/config/configuration.yaml

dockerfiles/tracing/docker-compose.zipkin.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ services:
33
apollo-router:
44
container_name: apollo-router
55
build: ./router
6-
image: ghcr.io/apollographql/router:v2.2.1-rc.1
6+
image: ghcr.io/apollographql/router:v2.2.1
77
volumes:
88
- ./supergraph.graphql:/etc/config/supergraph.graphql
99
- ./router/zipkin.router.yaml:/etc/config/configuration.yaml

helm/chart/router/Chart.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ type: application
2020
# so it matches the shape of our release process and release automation.
2121
# By proxy of that decision, this version uses SemVer 2.0.0, though the prefix
2222
# of "v" is not included.
23-
version: 2.2.1-rc.1
23+
version: 2.2.1
2424

2525
# This is the version number of the application being deployed. This version number should be
2626
# incremented each time you make changes to the application. Versions are not expected to
2727
# follow Semantic Versioning. They should reflect the version the application is using.
2828
# It is recommended to use it with quotes.
29-
appVersion: "v2.2.1-rc.1"
29+
appVersion: "v2.2.1"

helm/chart/router/README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
[router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation
44

5-
![Version: 2.2.1-rc.1](https://img.shields.io/badge/Version-2.2.1--rc.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.2.1-rc.1](https://img.shields.io/badge/AppVersion-v2.2.1--rc.1-informational?style=flat-square)
5+
![Version: 2.2.1](https://img.shields.io/badge/Version-2.2.1-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v2.2.1](https://img.shields.io/badge/AppVersion-v2.2.1-informational?style=flat-square)
66

77
## Prerequisites
88

@@ -11,15 +11,15 @@
1111
## Get Repo Info
1212

1313
```console
14-
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 2.2.1-rc.1
14+
helm pull oci://ghcr.io/apollographql/helm-charts/router --version 2.2.1
1515
```
1616

1717
## Install Chart
1818

1919
**Important:** only helm3 is supported
2020

2121
```console
22-
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 2.2.1-rc.1 --values my-values.yaml
22+
helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 2.2.1 --values my-values.yaml
2323
```
2424

2525
_See [configuration](#configuration) below._

0 commit comments

Comments
 (0)