Note
There are no breaking changes in this release! Thank you for the constructive and positive feedback and validation as well as the contributions from our external contributors. We look forward to seeing you at v1.0.0 soon!
🐛 Fixes
Update apollo-parser
to v0.2.11 (PR #1841)
Fixes error creation for missing selection sets in named operation definitions by updating to apollo-rs
's apollo-parser
v0.2.11.
Fix router scaffold version (Issue #1836)
Add v
prefix to the package version emitted in our scaffold tooling when a published version of the crate is available. This results in packages depending (appropriately, we would claim!) on our published Cargo crates, rather than Git references to the repository.
Fixed extraVolumeMounts
in Helm charts (Issue #1824)
Correct a case in our Helm charts where extraVolumeMounts
was not be being filled into the deployment template correctly.
By @LockedThread in #1831
Do not fill in a skeleton object when canceling a subgraph request (Issue #1819)
Given a supergraph with multiple subgraphs USER
and ORGA
, like this example supergraph, if a query spans multiple subgraphs, like this:
query {
currentUser { # USER subgraph
activeOrganization { # ORGA subgraph
id
creatorUser {
name
}
}
}
}
...when the USER
subgraph returns {"currentUser": { "activeOrganization": null }}
, then the request to the ORGA
subgraph
should be cancelled and no data should be generated. This was not occurring since the query planner was incorrectly creating an object at the target path. This is now corrected.
This fix also improves the internal usage of mocked subgraphs with TestHarness
.
Default conditional @defer
condition to true
(Issue #1820)
According to recent updates in the @defer
specification, defer conditions must default to true
. This corrects a bug where that default value wasn't being initialized properly.
By @o0Ignition0o in #1832
Support query plans with empty primary subselections (Issue #1778)
When a query with @defer
would result in an empty primary response, the router was returning
an error in interpreting the query plan. It is now using the query plan properly, and detects
more precisely queries containing @defer
.
🛠 Maintenance
Add more compilation gates to hide noisy warnings (PR #1830)
Add more gates (for the console
feature introduced in PR #1632) to not emit compiler warnings when using the --all-features
flag. (See original PR for more details on the flag usage.)
Deny panic
, unwrap
and expect
in the spec module (Issue #1844)
We are generally working to eliminate unwrap()
and expect()
statements from critical paths in the codebase and have done so on the spec
module. The spec
module, in particular, is reached after parsing has occurred so any invariants expressed by these expect
s would have already been enforced or validated. Still, we've decided to tighten things even further, by raising errors instead to provide end-users with even more stability.
To further defend against re-introduction, the spec
module now has linting annotations that prevent its content from using any code that explicitly panics.
#![deny(clippy::unwrap_used)]
#![deny(clippy::expect_used)]
#![deny(clippy::panic)]
By @o0Ignition0o in #1844
Remove potential panics from query plan execution (PR #1842)
Some remaining parts of the query plan execution code were using expect()
, unwrap()
and panic()
to guard against assumptions
about data. These conditions have been replaced with errors which will returned in the response preventing the possibility of panics in these code paths.