diff --git a/.circleci/config.yml b/.circleci/config.yml index 1c1162518a..6d0b8def12 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -140,6 +140,12 @@ commands: curl -L https://github.com/protocolbuffers/protobuf/releases/download/v<< pipeline.parameters.protoc_version >>/protoc-<< pipeline.parameters.protoc_version >>-win64.zip --output protoc.zip unzip protoc.zip -d $HOME/.local echo 'export PATH="$HOME/.local/bin:$PATH"' >> "$BASH_ENV" + - run: + name: Add protoc to env + command: | + $oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path + $newpath = "$oldpath;$HOME/.local/bin" + Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath # This job makes sure everything is ready to run integration tests macos_prepare_env: @@ -173,12 +179,6 @@ commands: [net] git-fetch-with-cli = true "@ - - run: - name: Add protoc to env - command: | - $oldpath = (Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path - $newpath = β€œ$oldpath;$HOME/.local/bin” - Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath install_minimal_rust: steps: @@ -419,6 +419,7 @@ jobs: equal: [*macos_build_executor, << parameters.platform >>] steps: - install_minimal_rust + - macos_install_baseline - run: command: > cargo xtask dist @@ -440,13 +441,33 @@ jobs: condition: or: - equal: [*amd_linux_build_executor, << parameters.platform >>] - - equal: [*arm_linux_build_executor, << parameters.platform >>] steps: - run: name: Update and install dependencies command: | sudo apt-get update - install_minimal_rust + - linux_amd_install_baseline + - run: + command: > + cargo xtask dist + - run: + command: > + mkdir -p artifacts + - run: + command: > + cargo xtask package --output artifacts/ + - when: + condition: + or: + - equal: [ *arm_linux_build_executor, << parameters.platform >> ] + steps: + - run: + name: Update and install dependencies + command: | + sudo apt-get update + - install_minimal_rust + - linux_arm_install_baseline - run: command: > cargo xtask dist @@ -480,6 +501,7 @@ jobs: [net] git-fetch-with-cli = true "@ + - windows_install_baseline - run: command: > cargo xtask dist diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ae542a7e5..fa4cb307ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,224 @@ 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.6.0] - 2022-12-13 + +## ❗ BREAKING ❗ + +### Protoc now required to build ([Issue #1970](https://github.com/apollographql/router/issues/1970)) + +Protoc is now required to build Apollo Router. Upgrading to Open Telemetry 0.18 has enabled us to upgrade tonic which in turn no longer bundles protoc. +Users must install it themselves https://grpc.io/docs/protoc-installation/. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 + +### Jaeger scheduled_delay moved to batch_processor->scheduled_delay ([Issue #2232](https://github.com/apollographql/router/issues/2232)) + +Jager config previously allowed configuration of scheduled_delay for batch span processor. To bring it in line with all other exporters this is now set using a batch_processor section. + +Before: +```yaml +telemetry: + tracing: + jaeger: + scheduled_delay: 100ms +``` + +After: +```yaml +telemetry: + tracing: + jaeger: + batch_processor: + scheduled_delay: 100ms +``` + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 + +## πŸš€ Features + +### Add support for experimental tooling ([Issue #2136](https://github.com/apollographql/router/issues/2136)) + +Display a message at startup listing used `experimental_` configurations with related GitHub discussions. +It also adds a new cli command `router config experimental` to display all available experimental configurations. + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/2242 + +### Re-deploy router pods if the SuperGraph configmap changes ([PR #2223](https://github.com/apollographql/router/pull/2223)) +When setting the supergraph with the `supergraphFile` variable a `sha256` checksum is calculated and set as an annotation for the router pods. This will spin up new pods when the supergraph is mounted via config map and the schema has changed. + +Note: It is preferable to not have `--hot-reload` enabled with this feature since re-configuring the router during a pod restart is duplicating the work and may cause confusion in log messaging. + +By [@toneill818](https://github.com/toneill818) in https://github.com/apollographql/router/pull/2223 + +### Tracing batch span processor is now configurable ([Issue #2232](https://github.com/apollographql/router/issues/2232)) + +Exporting traces often requires performance tuning based on the throughput of the router, sampling settings and ingestion capability of tracing ingress. + +All exporters now support configuring the batch span processor in the router yaml. +```yaml +telemetry: + apollo: + batch_processor: + scheduled_delay: 100ms + max_concurrent_exports: 1000 + max_export_batch_size: 10000 + max_export_timeout: 100s + max_queue_size: 10000 + tracing: + jaeger|zipkin|otlp|datadog: + batch_processor: + scheduled_delay: 100ms + max_concurrent_exports: 1000 + max_export_batch_size: 10000 + max_export_timeout: 100s + max_queue_size: 10000 +``` + +See the Open Telemetry docs for more information. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 + +### Add hot-reload support for Rhai scripts ([Issue #1071](https://github.com/apollographql/router/issues/1071)) + +The router will "watch" your "rhai.scripts" directory for changes and prompt an interpreter re-load if changes are detected. Changes are defined as: + + * creating a new file with a ".rhai" suffix + * modifying or removing an existing file with a ".rhai" suffix + +The watch is recursive, so files in sub-directories of the "rhai.scripts" directory are also watched. + +The Router attempts to identify errors in scripts before applying the changes. If errors are detected, these will be logged and the changes will not be applied to the runtime. Not all classes of error can be reliably detected, so check the log output of your router to make sure that changes have been applied. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2198 + +### Add support for working with multi-value header keys to Rhai ([Issue #2211](https://github.com/apollographql/router/issues/2211), [Issue #2255](https://github.com/apollographql/router/issues/2255)) + +Adds support for setting a header map key with an array. This causes the HeaderMap key/values to be appended() to the map, rather than inserted(). + +Adds support for a new `values()` fn which retrieves multiple values for a HeaderMap key as an array. + +Example use from Rhai as: + +``` + response.headers["set-cookie"] = [ + "foo=bar; Domain=localhost; Path=/; Expires=Wed, 04 Jan 2023 17:25:27 GMT; HttpOnly; Secure; SameSite=None", + "foo2=bar2; Domain=localhost; Path=/; Expires=Wed, 04 Jan 2023 17:25:27 GMT; HttpOnly; Secure; SameSite=None", + ]; + response.headers.values("set-cookie"); // Returns the array of values +``` + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2219, https://github.com/apollographql/router/pull/2258 + +## πŸ› Fixes + +### Filter nullified deferred responses ([Issue #2213](https://github.com/apollographql/router/issues/2168)) + +[`@defer` spec updates](https://github.com/graphql/graphql-spec/compare/01d7b98f04810c9a9db4c0e53d3c4d54dbf10b82...f58632f496577642221c69809c32dd46b5398bd7#diff-0f02d73330245629f776bb875e5ca2b30978a716732abca136afdd028d5cd33cR448-R470) mandates that a deferred response should not be sent if its path points to an element of the response that was nullified in a previous payload. + +By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2184 + +### Return root `__typename` when parts of a query with deferred fragment ([Issue #1677](https://github.com/apollographql/router/issues/1677)) + +With this query: + +```graphql +{ + __typename + fast + ...deferedFragment @defer +} + +fragment deferedFragment on Query { + slow +} +``` + +You will receive the first response chunk: + +```json +{"data":{"__typename": "Query", "fast":0},"hasNext":true} +``` + +By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/2188 + + +### Wait for opentelemetry tracer provider to shutdown ([PR #2191](https://github.com/apollographql/router/pull/2191)) + +When we drop Telemetry we spawn a thread to perform the global opentelemetry trace provider shutdown. The documentation of this function indicates that "This will invoke the shutdown method on all span processors. span processors should export remaining spans before return". We should give that process some time to complete (5 seconds currently) before returning from the `drop`. This will provide more opportunity for spans to be exported. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2191 +### Dispatch errors from the primary response to deferred responses ([Issue #1818](https://github.com/apollographql/router/issues/1818), [Issue #2185](https://github.com/apollographql/router/issues/2185)) + +When errors are generated during the primary execution, some may also be assigned to deferred responses. + +By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2192 + +### Reconstruct deferred queries with knowledge about fragments ([Issue #2105](https://github.com/apollographql/router/issues/2105)) + +When we are using `@defer`, response formatting must apply on a subset of the query (primary or deferred), that is reconstructed from information provided by the query planner: a path into the response and a subselection. Previously, that path did not include information on fragment application, which resulted in query reconstruction issues if `@defer` was used under a fragment application on an interface. + +By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2109 + +## πŸ›  Maintenance + +### Improve plugin registration predictability ([PR #2181](https://github.com/apollographql/router/pull/2181)) + +This replaces [ctor](https://crates.io/crates/ctor) with [linkme](https://crates.io/crates/linkme). `ctor` enables rust code to execute before `main`. This can be a source of undefined behaviour and we don't need our code to execute before `main`. `linkme` provides a registration mechanism that is perfect for this use case, so switching to use it makes the router more predictable, simpler to reason about and with a sound basis for future plugin enhancements. + +By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2181 + +### it_rate_limit_subgraph_requests fixed ([Issue #2213](https://github.com/apollographql/router/issues/2213)) + +This test was failing frequently due to it being a timing test being run in a single threaded tokio runtime. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2218 + +### Update reports.proto protobuf definition ([PR #2247](https://github.com/apollographql/router/pull/2247)) + +Update the reports.proto file, and change the prompt to update the file with the correct new location. + +By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/2247 +### Upgrade OpenTelemetry to 0.18 ([Issue #1970](https://github.com/apollographql/router/issues/1970)) + +Update to OpenTelemetry 0.18. + +By [@bryncooke](https://github.com/bryncooke) and [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/1970 and https://github.com/apollographql/router/pull/2236 + +### Remove spaceport ([Issue #2233](https://github.com/apollographql/router/issues/2233)) + +Removal significantly simplifies telemetry code and likely to increase performance and reliability. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 + +### Update to Rust 1.65 ([Issue #2220](https://github.com/apollographql/router/issues/2220)) + +Rust MSRV incremented to 1.65. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2221 and https://github.com/apollographql/router/pull/2240 + +### Improve automated release ([Pull #2220](https://github.com/apollographql/router/pull/2256)) + +Improved the automated release to: +* Update the scaffold files +* Improve the names of prepare release steps in circle. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2256 + +### Use Elastic-2.0 license spdx ([PR #2055](https://github.com/apollographql/router/issues/2055)) + +Now that the Elastic-2.0 spdx is a valid identifier in the rust ecosystem, we can update the router references. + +By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/2054 + +## πŸ“š Documentation +### Create yaml config design guidance ([Issue #2158](https://github.com/apollographql/router/issues/2158)) + +Added some yaml design guidance to help us create consistent yaml config for new and existing features. + +By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2159 + + # [1.5.0] - 2022-12-06 ## ❗ BREAKING ❗ diff --git a/Cargo.lock b/Cargo.lock index 9f951e619d..ae122caa4e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -162,7 +162,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "1.5.0" +version = "1.6.0" dependencies = [ "access-json", "ansi_term", @@ -278,7 +278,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "1.5.0" +version = "1.6.0" dependencies = [ "apollo-router", "async-trait", @@ -294,7 +294,7 @@ dependencies = [ [[package]] name = "apollo-router-scaffold" -version = "1.5.0" +version = "1.6.0" dependencies = [ "anyhow", "cargo-scaffold", diff --git a/NEXT_CHANGELOG.md b/NEXT_CHANGELOG.md index 414b8b303c..0ed480a744 100644 --- a/NEXT_CHANGELOG.md +++ b/NEXT_CHANGELOG.md @@ -25,221 +25,3 @@ By [@USERNAME](https://github.com/USERNAME) in https://github.com/apollographql/ --> # [x.x.x] (unreleased) - 2022-mm-dd - -## ❗ BREAKING ❗ - -### Protoc now required to build ([Issue #1970](https://github.com/apollographql/router/issues/1970)) - -Protoc is now required to build Apollo Router. Upgrading to Open Telemetry 0.18 has enabled us to upgrade tonic which in turn no longer bundles protoc. -Users must install it themselves https://grpc.io/docs/protoc-installation/. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 - -### Jaeger scheduled_delay moved to batch_processor->scheduled_delay ([Issue #2232](https://github.com/apollographql/router/issues/2232)) - -Jager config previously allowed configuration of scheduled_delay for batch span processor. To bring it in line with all other exporters this is now set using a batch_processor section. - -Before: -```yaml -telemetry: - tracing: - jaeger: - scheduled_delay: 100ms -``` - -After: -```yaml -telemetry: - tracing: - jaeger: - batch_processor: - scheduled_delay: 100ms -``` - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 - -## πŸš€ Features - -### Add support for experimental tooling ([Issue #2136](https://github.com/apollographql/router/issues/2136)) - -Display a message at startup listing used `experimental_` configurations with related GitHub discussions. -It also adds a new cli command `router config experimental` to display all available experimental configurations. - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/2242 - -### Re-Deploy Router Pods If The SuperGraph Configmap Changes ([PR #2223](https://github.com/apollographql/router/pull/2223)) -When setting the supergraph with th the `supergraphFile` variable a `sha256` checksum is calculated and set as an annotation for the router pods. This will spin up new pods when the supergraph is mounted via config map and the schema has changed. - -Note: It is preferable to not have `--hot-reload` enabled with this feature since re-configuring the router during a pod restart is duplicating the work and may cause confusion in log messaging. - -By [@toneill818](https://github.com/toneill818) in https://github.com/apollographql/router/pull/2223 - -### Tracing batch span processor is now configurable ([Issue #2232](https://github.com/apollographql/router/issues/2232)) - -Exporting traces often requires performance tuning based on the throughput of the router, sampling settings and ingestion capability of tracing ingress. - -All exporters now support configuring the batch span processor in the router yaml. -```yaml -telemetry: - apollo: - batch_processor: - scheduled_delay: 100ms - max_concurrent_exports: 1000 - max_export_batch_size: 10000 - max_export_timeout: 100s - max_queue_size: 10000 - tracing: - jaeger|zipkin|otlp|datadog: - batch_processor: - scheduled_delay: 100ms - max_concurrent_exports: 1000 - max_export_batch_size: 10000 - max_export_timeout: 100s - max_queue_size: 10000 -``` - -See the Open Telemetry docs for more information. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 - -### Add hot-reload support for rhai scripts ([Issue #1071](https://github.com/apollographql/router/issues/1071)) - -The router will "watch" your "rhai.scripts" directory for changes and prompt an interpreter re-load if changes are detected. Changes are defined as: - - * creating a new file with a ".rhai" suffix - * modifying or removing an existing file with a ".rhai" suffix - -The watch is recursive, so files in sub-directories of the "rhai.scripts" directory are also watched. - -The router attempts to identify errors in scripts before applying the changes. If errors are detected, these will be logged and the changes will not be applied to the runtime. Not all classes of error can be reliably detected, so check the log output of your router to make sure that changes have been applied. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2198 - -### Add support for working with multi-value header keys to rhai ([Issue #2211](https://github.com/apollographql/router/issues/2211), [Issue #2255](https://github.com/apollographql/router/issues/2255)) - -Adds support for setting a header map key with an array. This causes the HeaderMap key/values to be appended() to the map, rather than inserted(). - -Adds support for a new `values()` fn which retrieves multiple values for a HeaderMap key as an array. - -Example use from rhai as: - -``` - response.headers["set-cookie"] = [ - "foo=bar; Domain=localhost; Path=/; Expires=Wed, 04 Jan 2023 17:25:27 GMT; HttpOnly; Secure; SameSite=None", - "foo2=bar2; Domain=localhost; Path=/; Expires=Wed, 04 Jan 2023 17:25:27 GMT; HttpOnly; Secure; SameSite=None", - ]; - response.headers.values("set-cookie"); // Returns the array of values -``` - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2219, https://github.com/apollographql/router/pull/2258 - -## πŸ› Fixes - -### Filter nullified deferred responses ([Issue #2213](https://github.com/apollographql/router/issues/2168)) - -[`@defer` spec updates](https://github.com/graphql/graphql-spec/compare/01d7b98f04810c9a9db4c0e53d3c4d54dbf10b82...f58632f496577642221c69809c32dd46b5398bd7#diff-0f02d73330245629f776bb875e5ca2b30978a716732abca136afdd028d5cd33cR448-R470) -mandate that a deferred response should not be sent if its path points to an element of the response that was nullified -in a previous payload. - -By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2184 - -### Return root `__typename` when parts of a query with deferred fragment ([Issue #1677](https://github.com/apollographql/router/issues/1677)) - -With this query: - -```graphql -{ - __typename - fast - ...deferedFragment @defer -} - -fragment deferedFragment on Query { - slow -} -``` - -You will received first response chunk: - -```json -{"data":{"__typename": "Query", "fast":0},"hasNext":true} -``` - -By [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/2188 - - -### wait for opentelemetry tracer provider to shutdown ([PR #2191](https://github.com/apollographql/router/pull/2191)) - -When we drop Telemetry we spawn a thread to perform the global opentelemetry trace provider shutdown. The documentation of this function indicates that "This will invoke the shutdown method on all span processors. span processors should export remaining spans before return". We should give that process some time to complete (5 seconds currently) before returning from the `drop`. This will provide more opportunity for spans to be exported. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2191 -### Dispatch errors from the primary response to deferred responses ([Issue #1818](https://github.com/apollographql/router/issues/1818), [Issue #2185](https://github.com/apollographql/router/issues/2185)) - -When errors are generated during the primary execution, some of them can be assigned to -deferred responses. - -By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2192 - -### Reconstruct deferred queries with knowledge about fragments ([Issue #2105](https://github.com/apollographql/router/issues/2105)) - -When we are using `@defer`, response formatting must apply on a subset of the query (primary or deferred), that is reconstructed from information provided by the query planner: a path into the response and a subselection. Previously, that path did not include information on fragment application, which resulted in query reconstruction issues if `@defer` was used under a fragment application on an interface. - -By [@Geal](https://github.com/geal) in https://github.com/apollographql/router/pull/2109 - -## πŸ›  Maintenance - -### improve plugin registration predictability ([PR #2181](https://github.com/apollographql/router/pull/2181)) - -This replaces [ctor](https://crates.io/crates/ctor) with [linkme](https://crates.io/crates/linkme). `ctor` enables rust code to execute before `main`. This can be a source of undefined behaviour and we don't need our code to execute before `main`. `linkme` provides a registration mechanism that is perfect for this use case, so switching to use it makes the router more predictable, simpler to reason about and with a sound basis for future plugin enhancements. - -By [@garypen](https://github.com/garypen) in https://github.com/apollographql/router/pull/2181 - -### it_rate_limit_subgraph_requests fixed ([Issue #2213](https://github.com/apollographql/router/issues/2213)) - -This test was failing frequently due to it being a timing test being run in a single threaded tokio runtime. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2218 - -### update reports.proto protobuf definition ([PR #2247](https://github.com/apollographql/router/pull/2247)) - -Update the reports.proto file, and change the prompt to update the file with the correct new location. - -By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/2247 -### Upgrade OpenTelemetry to 0.18 ([Issue #1970](https://github.com/apollographql/router/issues/1970)) - -Update to OpenTelemetry 0.18. - -By [@bryncooke](https://github.com/bryncooke) and [@bnjjj](https://github.com/bnjjj) in https://github.com/apollographql/router/pull/1970 and https://github.com/apollographql/router/pull/2236 - -### Remove spaceport ([Issue #2233](https://github.com/apollographql/router/issues/2233)) - -Removal significantly simplifies telemetry code and likely to increase performance and reliability. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/1970 - -### Update to Rust 1.65 ([Issue #2220](https://github.com/apollographql/router/issues/2220)) - -Rust MSRV incremented to 1.65. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2221 and https://github.com/apollographql/router/pull/2240 - -### Improve automated release ([Pull #2220](https://github.com/apollographql/router/pull/2256)) - -Improved the automated release to: -* Update the scaffold files -* Improve the names of prepare release steps in circle. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2256 - -### Use Elastic-2.0 license spdx ([PR #2055](https://github.com/apollographql/router/issues/2055)) - -Now that the Elastic-2.0 spdx is a valid identifier in the rust ecosystem, we can update the router references. - -By [@o0Ignition0o](https://github.com/o0Ignition0o) in https://github.com/apollographql/router/pull/2054 - -## πŸ“š Documentation -### Create yaml config design guidance ([Issue #2158](https://github.com/apollographql/router/issues/2158)) - -Added some yaml design guidance to help us create consistent yaml config for new and existing features. - -By [@bryncooke](https://github.com/bryncooke) in https://github.com/apollographql/router/pull/2159 diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index 3b835301b9..d5f0c841e0 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "1.5.0" +version = "1.6.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 fb89a116eb..960bed71e4 100644 --- a/apollo-router-scaffold/Cargo.toml +++ b/apollo-router-scaffold/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-scaffold" -version = "1.5.0" +version = "1.6.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 75e69d4aeb..dc76d8ca05 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.5.0" +apollo-router = "1.6.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 20e2c2a4c5..e175f61e76 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.5.0"} +apollo-router-scaffold = { git="https://github.com/apollographql/router.git", tag = "v1.6.0" } {{/if}} {{/if}} anyhow = "1.0.58" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 48b1f88291..30c2f59cc0 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "1.5.0" +version = "1.6.0" authors = ["Apollo Graph, Inc. "] repository = "https://github.com/apollographql/router/" documentation = "https://www.apollographql.com/docs/router/" diff --git a/dockerfiles/tracing/docker-compose.datadog.yml b/dockerfiles/tracing/docker-compose.datadog.yml index c2fe3f7100..ea355eb84f 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.5.0 + image: ghcr.io/apollographql/router:v1.6.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 4ff6a379e8..6b59c6f04b 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.5.0 + image: ghcr.io/apollographql/router:v1.6.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 098a9f43a3..e0f5b0afb3 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.5.0 + image: ghcr.io/apollographql/router:v1.6.0 volumes: - ./supergraph.graphql:/etc/config/supergraph.graphql - ./router/zipkin.router.yaml:/etc/config/configuration.yaml diff --git a/docs/source/containerization/docker.mdx b/docs/source/containerization/docker.mdx index 9314399b5c..c23310dd84 100644 --- a/docs/source/containerization/docker.mdx +++ b/docs/source/containerization/docker.mdx @@ -11,7 +11,7 @@ The default behaviour of the router images is suitable for a quickstart or devel Note: The [docker documentation](https://docs.docker.com/engine/reference/run/) for the run command may be helpful when reading through the examples. -Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `` with your chosen version. e.g.: `v1.5.0` +Note: The exact image version to use is your choice depending on which release you wish to use. In the following examples, replace `` with your chosen version. e.g.: `v1.6.0` ## Override the configuration diff --git a/docs/source/containerization/kubernetes.mdx b/docs/source/containerization/kubernetes.mdx index 537015a552..1026c0f7a6 100644 --- a/docs/source/containerization/kubernetes.mdx +++ b/docs/source/containerization/kubernetes.mdx @@ -13,7 +13,7 @@ import { Link } from 'gatsby'; [Helm](https://helm.sh) is the package manager for kubernetes. -There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.5.0/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes. +There is a complete [helm chart definition](https://github.com/apollographql/router/tree/v1.6.0/helm/chart/router) in the repo which illustrates how to use helm to deploy the router in kubernetes. In both the following examples, we are using helm to install the router: - into namespace "router-deploy" (create namespace if it doesn't exist) @@ -64,10 +64,10 @@ kind: ServiceAccount metadata: name: release-name-router labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm --- # Source: router/templates/secret.yaml @@ -76,10 +76,10 @@ kind: Secret metadata: name: "release-name-router" labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm data: managedFederationApiKey: "IlJFREFDVEVEIg==" @@ -90,10 +90,10 @@ kind: ConfigMap metadata: name: release-name-router labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm data: configuration.yaml: | @@ -117,10 +117,10 @@ kind: Service metadata: name: release-name-router labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm spec: type: ClusterIP @@ -143,10 +143,10 @@ kind: Deployment metadata: name: release-name-router labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm annotations: @@ -172,7 +172,7 @@ spec: - name: router securityContext: {} - image: "ghcr.io/apollographql/router:v1.4.0" + image: "ghcr.io/apollographql/router:v1.6.0" imagePullPolicy: IfNotPresent args: - --hot-reload @@ -220,10 +220,10 @@ kind: Pod metadata: name: "release-name-router-test-connection" labels: - helm.sh/chart: router-1.0.0-rc.8 + helm.sh/chart: router-1.0.0-rc.10 app.kubernetes.io/name: router app.kubernetes.io/instance: release-name - app.kubernetes.io/version: "v1.4.0" + app.kubernetes.io/version: "v1.6.0" app.kubernetes.io/managed-by: Helm annotations: "helm.sh/hook": test diff --git a/helm/chart/router/Chart.yaml b/helm/chart/router/Chart.yaml index 91cd86e321..d0ec9a7dd3 100644 --- a/helm/chart/router/Chart.yaml +++ b/helm/chart/router/Chart.yaml @@ -19,10 +19,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.0.0-rc.9 +version: 1.0.0-rc.10 # 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.5.0" +appVersion: "v1.6.0" diff --git a/helm/chart/router/README.md b/helm/chart/router/README.md index e07074daf9..327eb04833 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.0.0-rc.8](https://img.shields.io/badge/Version-1.0.0--rc.8-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.4.0](https://img.shields.io/badge/AppVersion-v1.4.0-informational?style=flat-square) +![Version: 1.0.0-rc.10](https://img.shields.io/badge/Version-1.0.0--rc.10-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.6.0](https://img.shields.io/badge/AppVersion-v1.6.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.0.0-rc.8 +helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.0.0-rc.10 ``` ## Install Chart @@ -19,7 +19,7 @@ helm pull oci://ghcr.io/apollographql/helm-charts/router --version 1.0.0-rc.8 **Important:** only helm3 is supported ```console -helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.0.0-rc.8 --values my-values.yaml +helm upgrade --install [RELEASE_NAME] oci://ghcr.io/apollographql/helm-charts/router --version 1.0.0-rc.10 --values my-values.yaml ``` _See [configuration](#configuration) below._ diff --git a/licenses.html b/licenses.html index d1f3985b16..7f27d0842e 100644 --- a/licenses.html +++ b/licenses.html @@ -48,10 +48,10 @@

Overview of licenses:

  • Apache License 2.0 (53)
  • ISC License (12)
  • BSD 3-Clause "New" or "Revised" License (6)
  • +
  • Elastic License 2.0 (2)
  • Mozilla Public License 2.0 (2)
  • BSD 2-Clause "Simplified" License (1)
  • Creative Commons Zero v1.0 Universal (1)
  • -
  • Elastic License 2.0 (1)
  • OpenSSL License (1)
  • Unicode License Agreement - Data Files and Software (2016) (1)
  • @@ -5858,6 +5858,7 @@

    Used by:

  • ahash
  • anyhow
  • arbitrary
  • +
  • arc-swap
  • async-channel
  • async-compression
  • async-trait
  • @@ -10343,11 +10344,112 @@

    Elastic License 2.0

    Used by:

    +
    Copyright 2021 Apollo Graph, Inc.
    +
    +Elastic License 2.0
    +
    +## Acceptance
    +
    +By using the software, you agree to all of the terms and conditions below.
    +
    +## Copyright License
    +
    +The licensor grants you a non-exclusive, royalty-free, worldwide,
    +non-sublicensable, non-transferable license to use, copy, distribute, make
    +available, and prepare derivative works of the software, in each case subject to
    +the limitations and conditions below.
    +
    +## Limitations
    +
    +You may not provide the software to third parties as a hosted or managed
    +service, where the service provides users with access to any substantial set of
    +the features or functionality of the software.
    +
    +You may not move, change, disable, or circumvent the license key functionality
    +in the software, and you may not remove or obscure any functionality in the
    +software that is protected by the license key.
    +
    +You may not alter, remove, or obscure any licensing, copyright, or other notices
    +of the licensor in the software. Any use of the licensor’s trademarks is subject
    +to applicable law.
    +
    +## Patents
    +
    +The licensor grants you a license, under any patent claims the licensor can
    +license, or becomes able to license, to make, have made, use, sell, offer for
    +sale, import and have imported the software, in each case subject to the
    +limitations and conditions in this license. This license does not cover any
    +patent claims that you cause to be infringed by modifications or additions to
    +the software. If you or your company make any written claim that the software
    +infringes or contributes to infringement of any patent, your patent license for
    +the software granted under these terms ends immediately. If your company makes
    +such a claim, your patent license ends immediately for work on behalf of your
    +company.
    +
    +## Notices
    +
    +You must ensure that anyone who gets a copy of any part of the software from you
    +also gets a copy of these terms.
    +
    +If you modify the software, you must include in any modified copies of the
    +software prominent notices stating that you have modified the software.
    +
    +## No Other Rights
    +
    +These terms do not imply any licenses other than those expressly granted in
    +these terms.
    +
    +## Termination
    +
    +If you use the software in violation of these terms, such use is not licensed,
    +and your licenses will automatically terminate. If the licensor provides you
    +with a notice of your violation, and you cease all violation of this license no
    +later than 30 days after you receive that notice, your licenses will be
    +reinstated retroactively. However, if you violate these terms after such
    +reinstatement, any additional violation of these terms will cause your licenses
    +to terminate automatically and permanently.
    +
    +## No Liability
    +
    +*As far as the law allows, the software comes as is, without any warranty or
    +condition, and the licensor will not be liable to you for any damages arising
    +out of these terms or the use or nature of the software, under any kind of
    +legal claim.*
    +
    +## Definitions
    +
    +The **licensor** is the entity offering these terms, and the **software** is the
    +software the licensor makes available under these terms, including any portion
    +of it.
    +
    +**you** refers to the individual or entity agreeing to these terms.
    +
    +**your company** is any legal entity, sole proprietorship, or other kind of
    +organization that you work for, plus all organizations that have control over,
    +are under the control of, or are under common control with that
    +organization. **control** means ownership of substantially all the assets of an
    +entity, or the power to direct its management and policies by vote, contract, or
    +otherwise. Control can be direct or indirect.
    +
    +**your licenses** are all the licenses granted to you for the software under
    +these terms.
    +
    +**use** means anything you do with the software requiring one of your licenses.
    +
    +**trademark** means trademarks, service marks, and similar rights.
    +
    +--------------------------------------------------------------------------------
    + +
  • +

    Elastic License 2.0

    +

    Used by:

    + -
    Elastic License 2.0
    +                
    Copyright 2021 Apollo Graph, Inc.
     
    -URL: https://www.elastic.co/licensing/elastic-license
    +Elastic License 2.0
     
     ## Acceptance
     
    @@ -10438,6 +10540,8 @@ 

    Used by:

    **use** means anything you do with the software requiring one of your licenses. **trademark** means trademarks, service marks, and similar rights. + +--------------------------------------------------------------------------------
  • diff --git a/scripts/install.sh b/scripts/install.sh index 297d3e3713..a99fa55d0d 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.5.0" +PACKAGE_VERSION="v1.6.0" download_binary() { downloader --check