From feb9fd4aa50999fc38fa48ead710ab5db79fcd87 Mon Sep 17 00:00:00 2001 From: o0Ignition0o Date: Fri, 12 Apr 2024 09:49:38 +0200 Subject: [PATCH 1/3] prep release: v1.44.0 --- .../config_generate_query_fragments.md | 12 -- .changesets/feat_bnjjj_feat_4319.md | 43 ----- .../feat_bryn_enable_otelp_http_metrics.md | 16 -- ...feat_garypen_4899_error_service_details.md | 5 - .../feat_geal_query_plan_cache_default_ttl.md | 5 - .changesets/feat_geal_schema_hash_requires.md | 14 -- ...apq_cache_key_to_match_redis_convention.md | 7 - .../fix_garypen_revive_docker_heaptrack.md | 7 - ..._geal_entity_cache_configuration_update.md | 9 - .../fix_glasser_pq_error_status_codes.md | 15 -- .changesets/fix_glasser_selector_labels.md | 6 - ...simon_accept_request_extensions_is_null.md | 7 - ...en_fix_telemetry_integration_test_macos.md | 5 - CHANGELOG.md | 176 ++++++++++++++++++ Cargo.lock | 6 +- apollo-router-benchmarks/Cargo.toml | 2 +- apollo-router-scaffold/Cargo.toml | 2 +- .../templates/base/Cargo.toml | 2 +- .../templates/base/xtask/Cargo.toml | 2 +- apollo-router/Cargo.toml | 2 +- .../tracing/docker-compose.datadog.yml | 2 +- dockerfiles/tracing/docker-compose.jaeger.yml | 2 +- dockerfiles/tracing/docker-compose.zipkin.yml | 2 +- helm/chart/router/Chart.yaml | 4 +- helm/chart/router/README.md | 6 +- licenses.html | 34 +--- scripts/install.sh | 2 +- 27 files changed, 197 insertions(+), 198 deletions(-) delete mode 100644 .changesets/config_generate_query_fragments.md delete mode 100644 .changesets/feat_bnjjj_feat_4319.md delete mode 100644 .changesets/feat_bryn_enable_otelp_http_metrics.md delete mode 100644 .changesets/feat_garypen_4899_error_service_details.md delete mode 100644 .changesets/feat_geal_query_plan_cache_default_ttl.md delete mode 100644 .changesets/feat_geal_schema_hash_requires.md delete mode 100644 .changesets/fix_apq_cache_key_to_match_redis_convention.md delete mode 100644 .changesets/fix_garypen_revive_docker_heaptrack.md delete mode 100644 .changesets/fix_geal_entity_cache_configuration_update.md delete mode 100644 .changesets/fix_glasser_pq_error_status_codes.md delete mode 100644 .changesets/fix_glasser_selector_labels.md delete mode 100644 .changesets/fix_simon_accept_request_extensions_is_null.md delete mode 100644 .changesets/maint_garypen_fix_telemetry_integration_test_macos.md diff --git a/.changesets/config_generate_query_fragments.md b/.changesets/config_generate_query_fragments.md deleted file mode 100644 index 2125b3d4d0..0000000000 --- a/.changesets/config_generate_query_fragments.md +++ /dev/null @@ -1,12 +0,0 @@ -### Add `generate_query_fragments` configuration option ([PR #4885](https://github.com/apollographql/router/pull/4885)) - -Add a new `supergraph` configuration option `generate_query_fragments`. When set to `true`, the query planner will extract inline fragments into fragment definitions before sending queries to subgraphs. This can significantly reduce the size of the query sent to subgraphs, but may increase the time it takes to plan the query. Note that this option and `reuse_query_fragments` are mutually exclusive; if both are set to `true`, `generate_query_fragments` will take precedence. - -An example router configuration: - -```yaml title="router.yaml" -supergraph: - generate_query_fragments: true -``` - -By [@trevor-scheer](https://github.com/trevor-scheer) in https://github.com/apollographql/router/pull/4885 diff --git a/.changesets/feat_bnjjj_feat_4319.md b/.changesets/feat_bnjjj_feat_4319.md deleted file mode 100644 index e765d0095c..0000000000 --- a/.changesets/feat_bnjjj_feat_4319.md +++ /dev/null @@ -1,43 +0,0 @@ -### Add support of instruments in configuration for telemetry ([Issue #4319](https://github.com/apollographql/router/issues/4319)) - -Add support for custom and standard instruments through the configuration file. You'll be able to add your own custom metrics just using the configuration file. They may: -- be conditional -- get values from selectors, for instance headers, context or body -- have different types like `histogram` or `counter`. - -Example: - -```yaml title="router.yaml" -telemetry: - instrumentation: - instruments: - router: - http.server.active_requests: true - acme.request.duration: - value: duration - type: counter - unit: kb - description: "my description" - attributes: - http.response.status_code: true - "my_attribute": - response_header: "x-my-header" - - supergraph: - acme.graphql.requests: - value: unit - type: counter - unit: count - description: "supergraph requests" - - subgraph: - acme.graphql.subgraph.errors: - value: unit - type: counter - unit: count - description: "my description" -``` - -[Documentation](https://www.apollographql.com/docs/router/configuration/telemetry/instrumentation/instruments) - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4771 \ No newline at end of file diff --git a/.changesets/feat_bryn_enable_otelp_http_metrics.md b/.changesets/feat_bryn_enable_otelp_http_metrics.md deleted file mode 100644 index 9e9cc0a48f..0000000000 --- a/.changesets/feat_bryn_enable_otelp_http_metrics.md +++ /dev/null @@ -1,16 +0,0 @@ -### Support exporting metrics via OTLP HTTP ([Issue #4559](https://github.com/apollographql/router/issues/4559)) - -In addition to exporting metrics via OTLP/gRPC, the router now supports exporting metrics via OTLP/HTTP. - -You can enable exporting via OTLP/HTTP by setting the `protocol` key to `http` in your `router.yaml`: - -``` -telemetry: - exporters: - metrics: - otlp: - enabled: true - protocol: http -``` - -By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/4842 diff --git a/.changesets/feat_garypen_4899_error_service_details.md b/.changesets/feat_garypen_4899_error_service_details.md deleted file mode 100644 index 67f598b3ea..0000000000 --- a/.changesets/feat_garypen_4899_error_service_details.md +++ /dev/null @@ -1,5 +0,0 @@ -### Add details to `router service call failed` errors ([Issue #4899](https://github.com/apollographql/router/issues/4899)) - -The router now includes more details in `router service call failed` error messages to improve their understandability and debuggability. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4900 \ No newline at end of file diff --git a/.changesets/feat_geal_query_plan_cache_default_ttl.md b/.changesets/feat_geal_query_plan_cache_default_ttl.md deleted file mode 100644 index e1477cb1d7..0000000000 --- a/.changesets/feat_geal_query_plan_cache_default_ttl.md +++ /dev/null @@ -1,5 +0,0 @@ -### Set a default TTL for query plans ([Issue #4473](https://github.com/apollographql/router/issues/4473)) - -The router has updated the default TTL for query plan caches. The new default TTL is 30 days. With the previous default being an infinite duration, the new finite default better supports the fact that the router updates caches with schema updates. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4588 \ No newline at end of file diff --git a/.changesets/feat_geal_schema_hash_requires.md b/.changesets/feat_geal_schema_hash_requires.md deleted file mode 100644 index cdc012ab8b..0000000000 --- a/.changesets/feat_geal_schema_hash_requires.md +++ /dev/null @@ -1,14 +0,0 @@ -### Reuse cached query plans across schema updates ([Issue #4834](https://github.com/apollographql/router/issues/4834)) - -The router now supports an experimental feature to reuse schema aware query hashing—introduced with the [entity caching](https://www.apollographql.com/docs/router/configuration/entity-caching/) feature—to cache query plans. It reduces the amount of work when reloading the router. The hash of the cache stays the same for a query across schema updates if the schema updates don't change the query. If query planner [cache warm-up](https://www.apollographql.com/docs/router/configuration/in-memory-caching/#cache-warm-up) is configured, the router can reuse previous cache entries for which the hash does not change, consequently reducing both CPU usage and reload duration. - -You can enable reuse of cached query plans by setting the `supergraph.query_planning.experimental_reuse_query_plans` option: - -```yaml title="router.yaml" -supergraph: - query_planning: - warmed_up_queries: 100 - experimental_reuse_query_plans: true -``` - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4883 \ No newline at end of file diff --git a/.changesets/fix_apq_cache_key_to_match_redis_convention.md b/.changesets/fix_apq_cache_key_to_match_redis_convention.md deleted file mode 100644 index b635b5e52e..0000000000 --- a/.changesets/fix_apq_cache_key_to_match_redis_convention.md +++ /dev/null @@ -1,7 +0,0 @@ -### Replace null separator in cache key with `:` to match Redis convention ([PR #4886](https://github.com/apollographql/router/pull/4886)) - -To conform with Redis convention, the router now uses `:` instead of null as the separator in cache keys. This conformance helps to properly display cache keys in nested form in Redis clients. - -This PR (#4886) updates the separator for APQ cache keys. Another PR (#4583) updates the separator for query plan cache keys. - -By [@tapaderster](https://github.com/tapaderster) in https://github.com/apollographql/router/pull/4886 \ No newline at end of file diff --git a/.changesets/fix_garypen_revive_docker_heaptrack.md b/.changesets/fix_garypen_revive_docker_heaptrack.md deleted file mode 100644 index 53e897278a..0000000000 --- a/.changesets/fix_garypen_revive_docker_heaptrack.md +++ /dev/null @@ -1,7 +0,0 @@ -### Make 'router' user the owner of the docker image's /dist/data directory ([PR #4898](https://github.com/apollographql/router/pull/4898)) - -Since we made our images more secure, we run our router process as user 'router'. If we are running under 'heaptrack', e.g.: in a debug image, then we cannot write to /dist/data because it is owned by 'root'. - -This changes the ownership of /dist/data from 'root' to 'router' to allow writes to succeed. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4898 \ No newline at end of file diff --git a/.changesets/fix_geal_entity_cache_configuration_update.md b/.changesets/fix_geal_entity_cache_configuration_update.md deleted file mode 100644 index 4a123c4286..0000000000 --- a/.changesets/fix_geal_entity_cache_configuration_update.md +++ /dev/null @@ -1,9 +0,0 @@ -### Require Cache-Control header for entity cache ([Issue #4880](https://github.com/apollographql/router/issues/4880)) - -Previously, the router's entity cache plugin didn't use a subgraph's `Cache-Control` header to decide whether to store a response. Instead, it cached all responses. - -Now, the router's entity cache plugin expects a `Cache-Control` header from a subgraph. If a subgraph does not provide it, the aggregated `Cache-Control` header sent to the client will contain `no-store`. - -Additionally, the router now verifies that a TTL is configured for all subgraphs, either globally or for each subgraph configuration. - -By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4882 \ No newline at end of file diff --git a/.changesets/fix_glasser_pq_error_status_codes.md b/.changesets/fix_glasser_pq_error_status_codes.md deleted file mode 100644 index fbec4bb337..0000000000 --- a/.changesets/fix_glasser_pq_error_status_codes.md +++ /dev/null @@ -1,15 +0,0 @@ -### Persisted queries return 4xx errors ([PR #4887](https://github.com/apollographql/router/pull/4887) - -Previously, sending an invalid persisted query request could return a 200 status code to the client when they should have returned errors. These requests now return errors as 4xx status codes: - -- Sending a PQ ID that is unknown returns 404 (Not Found). -- Sending freeform GraphQL when no freeform GraphQL is allowed returns - 400 (Bad Request). -- Sending both a PQ ID and freeform GraphQL in the same request (if the - APQ feature is not also enabled) returns 400 (Bad Request). -- Sending freeform GraphQL that is not in the safelist when the safelist - is enabled returns (403 Forbidden). -- A particular internal error that shouldn't happen returns 500 (Internal - Server Error). - - By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/4887 diff --git a/.changesets/fix_glasser_selector_labels.md b/.changesets/fix_glasser_selector_labels.md deleted file mode 100644 index 305f516622..0000000000 --- a/.changesets/fix_glasser_selector_labels.md +++ /dev/null @@ -1,6 +0,0 @@ -### Helm: include all standard labels in pod spec but complete sentence that stands on its own ([PR #4862](https://github.com/apollographql/router/pull/4862)) - -The `helm.sh/chart`, `app.kubernetes.io/version`, and `app.kubernetes.io/managed-by` labels are now included on pods just like they are in every other resource created by the Helm chart, because the pod spec template now uses the `router.labels` template function instead of the `router.selectorLabels` template function. This also means that you can remove a label from the selector without removing it from resource metadata by overriding the `router.selectorLabels` and `router.labels` functions and moving the label from the former to the latter. - - -By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/4862 \ No newline at end of file diff --git a/.changesets/fix_simon_accept_request_extensions_is_null.md b/.changesets/fix_simon_accept_request_extensions_is_null.md deleted file mode 100644 index 1feaea4470..0000000000 --- a/.changesets/fix_simon_accept_request_extensions_is_null.md +++ /dev/null @@ -1,7 +0,0 @@ -### Accept `extensions: null` in a GraphQL request ([Issue #3388](https://github.com/apollographql/router/issues/3388)) - -In GraphQL requests, `extensions` is an optional map. -Passing an explicit `null` was incorrectly considered a parse error. -Now it is equivalent to omiting that field entirely, or to passing an empty map. - -By [@SimonSapin](https://github.com/SimonSapin) in https://github.com/apollographql/router/pull/4911 diff --git a/.changesets/maint_garypen_fix_telemetry_integration_test_macos.md b/.changesets/maint_garypen_fix_telemetry_integration_test_macos.md deleted file mode 100644 index 1707ed8ecc..0000000000 --- a/.changesets/maint_garypen_fix_telemetry_integration_test_macos.md +++ /dev/null @@ -1,5 +0,0 @@ -### fix annoying integration test warning on macOS ([PR #4919](https://github.com/apollographql/router/pull/4919)) - -For a little while we have had a warning with integration tests on macOS. This fixes the warning. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4919 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index eaf649f68b..b19f8d5a19 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,182 @@ All notable changes to Router will be documented in this file. This project adheres to [Semantic Versioning v2.0.0](https://semver.org/spec/v2.0.0.html). +# [1.44.0] - 2024-04-12 + +## 🚀 Features + +### Add details to `router service call failed` errors ([Issue #4899](https://github.com/apollographql/router/issues/4899)) + +The router now includes more details in `router service call failed` error messages to improve their understandability and debuggability. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4900 + +### Support exporting metrics via OTLP HTTP ([Issue #4559](https://github.com/apollographql/router/issues/4559)) + +In addition to exporting metrics via OTLP/gRPC, the router now supports exporting metrics via OTLP/HTTP. + +You can enable exporting via OTLP/HTTP by setting the `protocol` key to `http` in your `router.yaml`: + +``` +telemetry: + exporters: + metrics: + otlp: + enabled: true + protocol: http +``` + +By [@BrynCooke](https://github.com/BrynCooke) in https://github.com/apollographql/router/pull/4842 + +### Add support of instruments in configuration for telemetry ([Issue #4319](https://github.com/apollographql/router/issues/4319)) + +Add support for custom and standard instruments through the configuration file. You'll be able to add your own custom metrics just using the configuration file. They may: +- be conditional +- get values from selectors, for instance headers, context or body +- have different types like `histogram` or `counter`. + +Example: + +```yaml title="router.yaml" +telemetry: + instrumentation: + instruments: + router: + http.server.active_requests: true + acme.request.duration: + value: duration + type: counter + unit: kb + description: "my description" + attributes: + http.response.status_code: true + "my_attribute": + response_header: "x-my-header" + + supergraph: + acme.graphql.requests: + value: unit + type: counter + unit: count + description: "supergraph requests" + + subgraph: + acme.graphql.subgraph.errors: + value: unit + type: counter + unit: count + description: "my description" +``` + +[Documentation](https://www.apollographql.com/docs/router/configuration/telemetry/instrumentation/instruments) + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/4771 + +### Reuse cached query plans across schema updates ([Issue #4834](https://github.com/apollographql/router/issues/4834)) + +The router now supports an experimental feature to reuse schema aware query hashing—introduced with the [entity caching](https://www.apollographql.com/docs/router/configuration/entity-caching/) feature—to cache query plans. It reduces the amount of work when reloading the router. The hash of the cache stays the same for a query across schema updates if the schema updates don't change the query. If query planner [cache warm-up](https://www.apollographql.com/docs/router/configuration/in-memory-caching/#cache-warm-up) is configured, the router can reuse previous cache entries for which the hash does not change, consequently reducing both CPU usage and reload duration. + +You can enable reuse of cached query plans by setting the `supergraph.query_planning.experimental_reuse_query_plans` option: + +```yaml title="router.yaml" +supergraph: + query_planning: + warmed_up_queries: 100 + experimental_reuse_query_plans: true +``` + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4883 + +### Set a default TTL for query plans ([Issue #4473](https://github.com/apollographql/router/issues/4473)) + +The router has updated the default TTL for query plan caches. The new default TTL is 30 days. With the previous default being an infinite duration, the new finite default better supports the fact that the router updates caches with schema updates. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4588 + +## 🐛 Fixes + +### Replace null separator in cache key with `:` to match Redis convention ([PR #4886](https://github.com/apollographql/router/pull/4886)) + +To conform with Redis convention, the router now uses `:` instead of null as the separator in cache keys. This conformance helps to properly display cache keys in nested form in Redis clients. + +This PR (#4886) updates the separator for APQ cache keys. Another PR (#4583) updates the separator for query plan cache keys. + +By [@tapaderster](https://github.com/tapaderster) in https://github.com/apollographql/router/pull/4886 + +### Make 'router' user the owner of the docker image's /dist/data directory ([PR #4898](https://github.com/apollographql/router/pull/4898)) + +Since we made our images more secure, we run our router process as user 'router'. If we are running under 'heaptrack', e.g.: in a debug image, then we cannot write to /dist/data because it is owned by 'root'. + +This changes the ownership of /dist/data from 'root' to 'router' to allow writes to succeed. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4898 + +### Accept `extensions: null` in a GraphQL request ([Issue #3388](https://github.com/apollographql/router/issues/3388)) + +In GraphQL requests, `extensions` is an optional map. +Passing an explicit `null` was incorrectly considered a parse error. +Now it is equivalent to omiting that field entirely, or to passing an empty map. + +By [@SimonSapin](https://github.com/SimonSapin) in https://github.com/apollographql/router/pull/4911 + +### Require Cache-Control header for entity cache ([Issue #4880](https://github.com/apollographql/router/issues/4880)) + +Previously, the router's entity cache plugin didn't use a subgraph's `Cache-Control` header to decide whether to store a response. Instead, it cached all responses. + +Now, the router's entity cache plugin expects a `Cache-Control` header from a subgraph. If a subgraph does not provide it, the aggregated `Cache-Control` header sent to the client will contain `no-store`. + +Additionally, the router now verifies that a TTL is configured for all subgraphs, either globally or for each subgraph configuration. + +By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/pull/4882 + +### Helm: include all standard labels in pod spec but complete sentence that stands on its own ([PR #4862](https://github.com/apollographql/router/pull/4862)) + +The `helm.sh/chart`, `app.kubernetes.io/version`, and `app.kubernetes.io/managed-by` labels are now included on pods just like they are in every other resource created by the Helm chart, because the pod spec template now uses the `router.labels` template function instead of the `router.selectorLabels` template function. This also means that you can remove a label from the selector without removing it from resource metadata by overriding the `router.selectorLabels` and `router.labels` functions and moving the label from the former to the latter. + + +By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/4862 + +### Persisted queries return 4xx errors ([PR #4887](https://github.com/apollographql/router/pull/4887) + +Previously, sending an invalid persisted query request could return a 200 status code to the client when they should have returned errors. These requests now return errors as 4xx status codes: + +- Sending a PQ ID that is unknown returns 404 (Not Found). +- Sending freeform GraphQL when no freeform GraphQL is allowed returns + 400 (Bad Request). +- Sending both a PQ ID and freeform GraphQL in the same request (if the + APQ feature is not also enabled) returns 400 (Bad Request). +- Sending freeform GraphQL that is not in the safelist when the safelist + is enabled returns (403 Forbidden). +- A particular internal error that shouldn't happen returns 500 (Internal + Server Error). + + By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/4887 + +## 📃 Configuration + +### Add `generate_query_fragments` configuration option ([PR #4885](https://github.com/apollographql/router/pull/4885)) + +Add a new `supergraph` configuration option `generate_query_fragments`. When set to `true`, the query planner will extract inline fragments into fragment definitions before sending queries to subgraphs. This can significantly reduce the size of the query sent to subgraphs, but may increase the time it takes to plan the query. Note that this option and `reuse_query_fragments` are mutually exclusive; if both are set to `true`, `generate_query_fragments` will take precedence. + +An example router configuration: + +```yaml title="router.yaml" +supergraph: + generate_query_fragments: true +``` + +By [@trevor-scheer](https://github.com/trevor-scheer) in https://github.com/apollographql/router/pull/4885 + +## 🛠 Maintenance + +### fix annoying integration test warning on macOS ([PR #4919](https://github.com/apollographql/router/pull/4919)) + +For a little while we have had a warning with integration tests on macOS. This fixes the warning. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4919 + + + # [1.43.2] - 2024-04-03 ## 🐛 Fixes diff --git a/Cargo.lock b/Cargo.lock index 466f598b5b..470b383139 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -250,7 +250,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.44.0-rc.0" +version = "1.44.0" dependencies = [ "access-json", "anyhow", @@ -410,7 +410,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.44.0-rc.0" +version = "1.44.0" dependencies = [ "apollo-parser", "apollo-router", @@ -426,7 +426,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.44.0-rc.0" +version = "1.44.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index bde59256a4..45cb1924d1 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.44.0-rc.0" +version = "1.44.0" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/Cargo.toml b/apollo-router-scaffold/Cargo.toml index c6c6f1827e..ff6054dca0 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.44.0-rc.0" +version = "1.44.0" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "Elastic-2.0" diff --git a/apollo-router-scaffold/templates/base/Cargo.toml b/apollo-router-scaffold/templates/base/Cargo.toml index 35adec573d..56e237bfce 100644 --- a/apollo-router-scaffold/templates/base/Cargo.toml +++ b/apollo-router-scaffold/templates/base/Cargo.toml @@ -22,7 +22,7 @@ apollo-router = { path ="{{integration_test}}apollo-router" } apollo-router = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} # Note if you update these dependencies then also update xtask/Cargo.toml -apollo-router = "1.44.0-rc.0" +apollo-router = "1.44.0" {{/if}} {{/if}} async-trait = "0.1.52" diff --git a/apollo-router-scaffold/templates/base/xtask/Cargo.toml b/apollo-router-scaffold/templates/base/xtask/Cargo.toml index 9472859423..0f1d41f37b 100644 --- a/apollo-router-scaffold/templates/base/xtask/Cargo.toml +++ b/apollo-router-scaffold/templates/base/xtask/Cargo.toml @@ -13,7 +13,7 @@ apollo-router-scaffold = { path ="{{integration_test}}apollo-router-scaffold" } {{#if branch}} apollo-router-scaffold = { git="https://github.com/apollographql/router.git", branch="{{branch}}" } {{else}} -apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.44.0-rc.0" } +apollo-router-scaffold = { git = "https://github.com/apollographql/router.git", tag = "v1.44.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 8016273775..f2b286a6e9 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.44.0-rc.0" +version = "1.44.0" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://docs.rs/apollo-router" diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index a7ef7428bf..0115029b0b 100644 --- a/dockerfiles/tracing/docker-compose.datadog.yml +++ b/dockerfiles/tracing/docker-compose.datadog.yml @@ -3,7 +3,7 @@ services: apollo-router: container_name: apollo-router - image: ghcr.io/apollographql/router:v1.44.0-rc.0 + image: ghcr.io/apollographql/router:v1.44.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/datadog.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.jaeger.yml b/dockerfiles/tracing/docker-compose.jaeger.yml index 19a65ebc2d..04c0c57799 100644 --- a/dockerfiles/tracing/docker-compose.jaeger.yml +++ b/dockerfiles/tracing/docker-compose.jaeger.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router #build: ./router - image: ghcr.io/apollographql/router:v1.44.0-rc.0 + image: ghcr.io/apollographql/router:v1.44.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/jaeger.router.yaml:/etc/config/configuration.yaml diff --git a/dockerfiles/tracing/docker-compose.zipkin.yml b/dockerfiles/tracing/docker-compose.zipkin.yml index f8d713811d..f7a431ea72 100644 --- a/dockerfiles/tracing/docker-compose.zipkin.yml +++ b/dockerfiles/tracing/docker-compose.zipkin.yml @@ -4,7 +4,7 @@ services: apollo-router: container_name: apollo-router build: ./router - image: ghcr.io/apollographql/router:v1.44.0-rc.0 + image: ghcr.io/apollographql/router:v1.44.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index 13197012c1..bfbfc803cf 100644 --- a/helm/chart/router/Chart.yaml +++ b/helm/chart/router/Chart.yaml @@ -20,10 +20,10 @@ type: application # so it matches the shape of our release process and release automation. # By proxy of that decision, this version uses SemVer 2.0.0, though the prefix # of "v" is not included. -version: 1.44.0-rc.0 +version: 1.44.0 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "v1.44.0-rc.0" +appVersion: "v1.44.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index dd91dd91f5..b997146903 100644 --- a/helm/chart/router/README.md +++ b/helm/chart/router/README.md @@ -2,7 +2,7 @@ [router](https://github.com/apollographql/router) Rust Graph Routing runtime for Apollo Federation -![Version: 1.44.0-rc.0](https://img.shields.io/badge/Version-1.44.0--rc.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.44.0-rc.0](https://img.shields.io/badge/AppVersion-v1.44.0--rc.0-informational?style=flat-square) +![Version: 1.44.0](https://img.shields.io/badge/Version-1.44.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.44.0](https://img.shields.io/badge/AppVersion-v1.44.0-informational?style=flat-square) ## Prerequisites @@ -11,7 +11,7 @@ ## Get Repo Info ```console -helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.44.0-rc.0 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.44.0 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.44.0-rc.0 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.44.0-rc.0 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.44.0 --values my-values.yaml ``` _See [configuration](#configuration) below._ diff --git a/licenses.html b/licenses.html index cb24cba24c..b5b968a876 100644 --- a/licenses.html +++ b/licenses.html @@ -11329,16 +11329,6 @@

Used by:

additional terms or conditions. -
  • -

    Apache License 2.0

    -

    Used by:

    - -
    ../../LICENSE-APACHE
    -
  • Apache License 2.0

    Used by:

    @@ -11986,7 +11976,11 @@

    Used by:

    Apache License 2.0

    Used by:

      +
    • allocator-api2
    • apollo-compiler
    • +
    • apollo-encoder
    • +
    • apollo-parser
    • +
    • apollo-smith
    • curve25519-dalek-derive
    • deadpool-runtime
    • deno-proc-macro-rules
    • @@ -12091,26 +12085,6 @@

      Used by:

      See the License for the specific language governing permissions and limitations under the License. - -
    • -

      Apache License 2.0

      -

      Used by:

      - -
      Copyright 2023 The allocator-api2 project developers
      -
      -Licensed under the Apache License, Version 2.0 (the "License");
      -you may not use this file except in compliance with the License.
      -You may obtain a copy of the License at
      -
      -	http://www.apache.org/licenses/LICENSE-2.0
      -
      -Unless required by applicable law or agreed to in writing, software
      -distributed under the License is distributed on an "AS IS" BASIS,
      -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      -See the License for the specific language governing permissions and
      -limitations under the License.
    • Apache License 2.0

      diff --git a/scripts/install.sh b/scripts/install.sh index f3f6b62afc..64afab308c 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -11,7 +11,7 @@ BINARY_DOWNLOAD_PREFIX="https://github.com/apollographql/router/releases/downloa # Router version defined in apollo-router's Cargo.toml # Note: Change this line manually during the release steps. -PACKAGE_VERSION="v1.44.0-rc.0" +PACKAGE_VERSION="v1.44.0" download_binary() { downloader --check From 4b24fa1e780ed928ec3f72524176b91e6f093c46 Mon Sep 17 00:00:00 2001 From: o0Ignition0o Date: Fri, 12 Apr 2024 10:15:32 +0200 Subject: [PATCH 2/3] changelog review --- CHANGELOG.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b19f8d5a19..ad0441a09b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -134,8 +134,9 @@ By [@Geal](https://github.com/Geal) in https://github.com/apollographql/router/p ### Helm: include all standard labels in pod spec but complete sentence that stands on its own ([PR #4862](https://github.com/apollographql/router/pull/4862)) -The `helm.sh/chart`, `app.kubernetes.io/version`, and `app.kubernetes.io/managed-by` labels are now included on pods just like they are in every other resource created by the Helm chart, because the pod spec template now uses the `router.labels` template function instead of the `router.selectorLabels` template function. This also means that you can remove a label from the selector without removing it from resource metadata by overriding the `router.selectorLabels` and `router.labels` functions and moving the label from the former to the latter. +The templates for the router's Helm chart have been updated so that the `helm.sh/chart`, `app.kubernetes.io/version`, and `app.kubernetes.io/managed-by` labels are now included on pods, as they already were for all other resources created by the Helm chart. +The specific change to the template is that the pod spec template now uses the `router.labels` template function instead of the `router.selectorLabels` template function. This allows you to remove a label from the selector without removing it from resource metadata by overriding the `router.selectorLabels` and `router.labels` functions and moving the label from the former to the latter. By [@glasser](https://github.com/glasser) in https://github.com/apollographql/router/pull/4862 @@ -172,9 +173,27 @@ By [@trevor-scheer](https://github.com/trevor-scheer) in https://github.com/apol ## 🛠 Maintenance -### fix annoying integration test warning on macOS ([PR #4919](https://github.com/apollographql/router/pull/4919)) +### Fix integration test warning on macOS ([PR #4919](https://github.com/apollographql/router/pull/4919)) -For a little while we have had a warning with integration tests on macOS. This fixes the warning. +Previously, integration tests of the router on macOS could produce the warning messages: + +``` +warning: unused import: `common::Telemetry` + --> apollo-router/tests/integration/mod.rs:4:16 + | +4 | pub(crate) use common::Telemetry; + | ^^^^^^^^^^^^^^^^^ + | + = note: `#[warn(unused_imports)]` on by default + +warning: unused import: `common::ValueExt` + --> apollo-router/tests/integration/mod.rs:5:16 + | +5 | pub(crate) use common::ValueExt; + | ^^^^^^^^^^^^^^^^ +``` + +That issue is now resolved. By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/4919 From bbc6d07843d6bc5b4b1a8dde7c41c3cca4799852 Mon Sep 17 00:00:00 2001 From: Geoffroy Couprie Date: Fri, 12 Apr 2024 10:31:48 +0200 Subject: [PATCH 3/3] fix the rhai version to 1.17 until we fix the test failures in 1.18 (#4945) otherwise the test_updated CI build will fail --- apollo-router/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index f2b286a6e9..cdd8c23bc0 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -176,7 +176,7 @@ prost = "0.12.3" prost-types = "0.12.3" proteus = "0.5.0" rand = "0.8.5" -rhai = { version = "1.17.1", features = ["sync", "serde", "internals"] } +rhai = { version = "=1.17.1", features = ["sync", "serde", "internals"] } regex = "1.10.3" reqwest = { version = "0.11.24", default-features = false, features = [ "rustls-tls",