From c58ee9d9478adf63e32f5c48ef77db00ff3e56cd Mon Sep 17 00:00:00 2001 From: Jesse Rosenberger Date: Thu, 3 Feb 2022 15:29:54 +0200 Subject: [PATCH] release: v0.1.0-alpha.4 (#392) * Author CHANGELOG * Bump versions! Per instructions: https://github.com/apollographql/router/blob/948dbc6a/RELEASE_CHECKLIST.md --- CHANGELOG.md | 52 +++++++++++++++++++++++++++++ Cargo.lock | 8 ++--- apollo-router-benchmarks/Cargo.toml | 2 +- apollo-router-core/Cargo.toml | 2 +- apollo-router/Cargo.toml | 2 +- deny.toml | 4 +-- xtask/Cargo.toml | 2 +- 7 files changed, 62 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e031ab11a..d32099a6fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,58 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## 🛠 Maintenance ## 📚 Documentation --> +# [v0.1.0-alpha.4] 2022-02-03 + +## :sparkles: Features + +- **Unix socket support** via [#158](https://github.com/apollographql/router/issues/158) + + _...and via upstream [`tokios-rs/tokio#4385`](https://github.com/tokio-rs/tokio/pull/4385)_ + + The Router can now listen on Unix domain sockets (i.e., IPC) in addition to the existing IP-based (port) listening. This should bring further compatibility with upstream intermediaries who also allow support this form of communication! + + _(Thank you to [@cecton](https://github.com/cecton), both for the PR that landed this feature but also for contributing the upstream PR to `tokio`.)_ + +## :bug: Fixes + +- **Resolved hangs occurring on Router reload when `jaeger` was configured** via [#337](https://github.com/apollographql/router/pull/337) + + Synchronous calls being made to [`opentelemetry::global::set_tracer_provider`] were causing the runtime to misbehave when the configuration (file) was adjusted (and thus, hot-reloaded) on account of the root context of that call being asynchronous. + + This change adjusts the call to be made from a new thread. Since this only affected _potential_ runtime configuration changes (again, hot-reloads on a configuration change), the thread spawn is a reasonable solution. + + [`opentelemetry::global::set_tracer_provider`]: https://docs.rs/opentelemetry/0.10.0/opentelemetry/global/fn.set_tracer_provider.html + +## :nail_care: Improvements + +> Most of the improvements this time are internal to the code-base but that doesn't mean we shouldn't talk about them. A great developer experience matters both internally and externally! :smile_cat: + +- **Store JSON strings in a `bytes::Bytes` instance** via [#284](https://github.com/apollographql/router/pull/284) + + The router does a a fair bit of deserialization, filtering, aggregation and re-serializing of JSON objects. Since we currently operate on a dynamic schema, we've been relying on [`serde_json::Value`] to represent this data internally. + + After this change, that `Value` type is now replaced with an equivalent type from a new [`serde_json_bytes`], which acts as an envelope around an underlying `bytes::Bytes`. This allows us to refer to the buffer that contained the JSON data while avoiding the allocation and copying costs on each string for values that are largely unused by the Router directly. + + This should offer future benefits when implementing — e.g., query de-duplication and caching — since a single buffer will be usable by multiple responses at the same time. + + [`serde_json::Value`]: https://docs.rs/serde_json/0.9.8/serde_json/enum.Value.html + [`serde_json_bytes`]: https://crates.io/crates/serde_json_bytes + [`bytes::Bytes`]: https://docs.rs/bytes/0.4.12/bytes/struct.Bytes.html + +- **Development workflow improvement** via [#367](https://github.com/apollographql/router/pull/367) + + Polished away some existing _Problems_ reported by `rust-analyzer` and added troubleshooting instructions to our documentation. + +- **Removed unnecessary `Arc` from `PreparedQuery`'s `execute`** via [#328](https://github.com/apollographql/router/pull/328) + + _...and followed up with [#367](https://github.com/apollographql/router/pull/367)_ + +- **Bumped/upstream improvements to `test_span`** via [#359](https://github.com/apollographql/router/pull/359) + + _...and [`apollographql/test-span#11`](https://github.com/apollographql/test-span/pull/11) upstream_ + + Internally, this is just a version bump to the Router, but it required upstream changes to the `test-span` crate. The bump brings new filtering abilities and adjusts the verbosity of spans tracing levels, and removes non-determinism from tests. + # [v0.1.0-alpha.3] 2022-01-11 ## :rocket::waxing_crescent_moon: Public alpha release diff --git a/Cargo.lock b/Cargo.lock index a9261d698f..d26d6545df 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -78,7 +78,7 @@ dependencies = [ [[package]] name = "apollo-router" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" dependencies = [ "anyhow", "apollo-router-core", @@ -130,7 +130,7 @@ dependencies = [ [[package]] name = "apollo-router-benchmarks" -version = "0.1.0-alpha.2" +version = "0.1.0-alpha.4" dependencies = [ "apollo-router", "apollo-router-core", @@ -146,7 +146,7 @@ dependencies = [ [[package]] name = "apollo-router-core" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" dependencies = [ "apollo-parser", "async-trait", @@ -4174,7 +4174,7 @@ dependencies = [ [[package]] name = "xtask" -version = "0.1.0-prealpha.1" +version = "0.1.0-alpha.4" dependencies = [ "ansi_term", "anyhow", diff --git a/apollo-router-benchmarks/Cargo.toml b/apollo-router-benchmarks/Cargo.toml index ef21527518..7c72343194 100644 --- a/apollo-router-benchmarks/Cargo.toml +++ b/apollo-router-benchmarks/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-benchmarks" -version = "0.1.0-alpha.2" +version = "0.1.0-alpha.4" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "LicenseRef-ELv2" diff --git a/apollo-router-core/Cargo.toml b/apollo-router-core/Cargo.toml index 4adf0c42da..395d909def 100644 --- a/apollo-router-core/Cargo.toml +++ b/apollo-router-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router-core" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" authors = ["Apollo Graph, Inc. "] edition = "2021" license-file = "./LICENSE" diff --git a/apollo-router/Cargo.toml b/apollo-router/Cargo.toml index 3a94c09eb1..b2f4d546ea 100644 --- a/apollo-router/Cargo.toml +++ b/apollo-router/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apollo-router" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" authors = ["Apollo Graph, Inc. "] edition = "2021" license-file = "./LICENSE" diff --git a/deny.toml b/deny.toml index d34b60699f..c9b46f54e0 100644 --- a/deny.toml +++ b/deny.toml @@ -63,13 +63,13 @@ license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }] [[licenses.clarify]] name = "apollo-router" expression = "LicenseRef-ELv2" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" license-files = [{ path = "LICENSE", hash = 0xaceadac9 }] [[licenses.clarify]] name = "apollo-router-core" expression = "LicenseRef-ELv2" -version = "0.1.0-alpha.3" +version = "0.1.0-alpha.4" license-files = [{ path = "LICENSE", hash = 0xaceadac9 }] [[licenses.clarify]] diff --git a/xtask/Cargo.toml b/xtask/Cargo.toml index e3d9273737..4d7ef18564 100644 --- a/xtask/Cargo.toml +++ b/xtask/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xtask" -version = "0.1.0-prealpha.1" +version = "0.1.0-alpha.4" authors = ["Apollo Graph, Inc. "] edition = "2021" license = "LicenseRef-ELv2"