Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

prep release: v1.33.0 #4046

Merged
merged 5 commits into from
Oct 17, 2023
Merged

prep release: v1.33.0 #4046

merged 5 commits into from
Oct 17, 2023

Conversation

bnjjj
Copy link
Contributor

@bnjjj bnjjj commented Oct 17, 2023

Note

When approved, this PR will merge into the 1.33.0 branch which will — upon being approved itself — merge into main.

Things to review in this PR:

  • Changelog correctness (There is a preview below, but it is not necessarily the most up to date. See the Files Changed for the true reality.)
  • Version bumps
  • That it targets the right release branch (1.33.0 in this case!).

🚀 Features

Add hasNext to SupergraphRequest (Issue #4016)

Coprocessors multi-part response support has been enhanced to include hasNext, allowing you to determine when a request has completed.

When stage is SupergraphResponse, hasNext if present and true indicates that there will be subsequent SupergraphResponse calls to the co-processor for each multi-part (@defer/subscriptions) response.

See the coprocessor documentation for more details.

By @BrynCooke in #4017

Expose the ability to set topology spread constraints on the helm chart (3891)

Give developers the ability to set topology spread constraints that can be used to guarantee that federation pods are spread out evenly across AZs.

By bjoern in #3892

🐛 Fixes

Ignore JWKS keys which aren't supported by the router (Issue #3853)

If you have a JWKS which contains a key which has an algorithm (alg) which the router doesn't recognise, then the entire JWKS is disregarded. This is unsatisfactory, since there are likely to be many other keys in the JWKS which the router could use.

We have changed the JWKS processing logic so that we remove entries with an unrecognised algorithm from the list of available keys. We print a warning with the name of the algorithm for each removed entry.

By @garypen in #3922

Fix panic when streaming responses to co-processor (Issue #4013)

Streamed responses will no longer cause a panic in the co-processor plugin. This affected defer and stream queries.

By @BrynCooke in #4014

Only reject defer/subscriptions if actually part of a batch (Issue #3956)

Fix the checking logic so that deferred queries or subscriptions will only be rejected when experimental batching is enabled and the operations are part of a batch.

Without this fix, all subscriptions or deferred queries would be rejected when experimental batching support was enabled.

By @garypen in #3959

Fix requires selection in arrays (Issue #3972)

When a field has a @requires annotation that selects an array, and some fields are missing in that array or some of the elements are null, the router would short circuit the selection and remove the entire array. This relaxes the condition to allow nulls in the selected array

By @Geal in #3975

Fix router hang when opening the explorer, prometheus or health check page (Issue #3941)

The Router did not gracefully shutdown when an idle connections are made by a client, and would instead hang. In particular, web browsers make such connection in anticipation of future traffic.

This is now fixed, and the Router will now gracefully shut down in a timely fashion.


By @Geal in #3969

Fix hang and high CPU usage when compressing small responses (PR #3961)

When returning small responses (less than 10 bytes) and compressing them using gzip, the router could go into an infinite loop


By @Geal in #3961

📃 Configuration

Add enabled field for telemetry exporters (PR #3952)

Telemetry configuration now supports enabled on all exporters. This allows exporters to be disabled without removing them from the configuration and in addition allows for a more streamlined default configuration.

telemetry:
  tracing: 
    datadog:
+      enabled: true
    jaeger:
+      enabled: true
    otlp:
+      enabled: true
    zipkin:
+      enabled: true

Existing configurations will be migrated to the new format automatically on startup. However, you should update your configuration to use the new format as soon as possible.

By @BrynCooke in #3952

🛠 Maintenance

Create a replacement self-signed server certificate: 10 years lifespan (Issue #3998)

This certificate is only used for testing, so 10 years lifespan is acceptable.

By @garypen in #4009

📚 Documentation

Updated documentation for deploying router (PR #3943)

Updated documentation for containerized router deployments, with guides and examples for deploying on Kubernetes and running on Docker.

By @shorgi in #3943

Document guidance for request and response buffering (Issue #3838)

Provides specific guidance on request and response buffering within the router.

By @garypen in #3970

Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
@bnjjj bnjjj requested a review from a team as a code owner October 17, 2023 13:06
@bnjjj bnjjj enabled auto-merge (squash) October 17, 2023 13:06
@router-perf
Copy link

router-perf bot commented Oct 17, 2023

CI performance tests

  • events_big_cap_high_rate - Stress test for events with a lot of users, deduplication enabled and high rate event with a big queue capacity
  • events_without_dedup - Stress test for events with a lot of users and deduplication DISABLED
  • events - Stress test for events with a lot of users and deduplication ENABLED
  • large-request - Stress test with a 1 MB request payload
  • step - Basic stress test that steps up the number of users over time
  • xlarge-request - Stress test with 10 MB request payload
  • reload - Reload test over a long period of time at a constant rate of users
  • no-graphos - Basic stress test, no GraphOS.
  • xxlarge-request - Stress test with 100 MB request payload
  • step-jemalloc-tuning - Clone of the basic stress test for jemalloc tuning
  • const - Basic stress test that runs with a constant number of users

Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
@bnjjj bnjjj mentioned this pull request Oct 17, 2023
CHANGELOG.md Outdated Show resolved Hide resolved
CHANGELOG.md Outdated Show resolved Hide resolved
docs/source/federation-version-support.mdx Outdated Show resolved Hide resolved
this_release.md Outdated Show resolved Hide resolved
bnjjj and others added 3 commits October 17, 2023 15:28
Co-authored-by: Gary Pennington <gary@apollographql.com>
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
@bnjjj bnjjj requested a review from garypen October 17, 2023 13:33
@bnjjj bnjjj merged commit 0543d55 into 1.33.0 Oct 17, 2023
9 of 10 checks passed
@bnjjj bnjjj deleted the prep-1.33.0 branch October 17, 2023 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants