Releases: apollographql/rover
v0.4.2
🚀 Features
-
Adds launch URL feedback to
rover subgraph publish
- @Y-Guo, #989If a
rover subgraph publish
invocation kicks off a launch, it will now output the URL associated with the launch so you can go right to it in Studio. -
Improve messaging for
rover subgraph check
- @david-castaneda, #980In the case where the API schema does not change after a
subgraph check
but the core schema was modified, you are now notified as such rather than being displayed a confusing "there were no changes detected" message.
🐛 Fixes
-
Omit Float scalars from introspection result - @lrlna, #988 fixes #985
Since
Float
is a built-in GraphQL scalar type, it is no longer included in Rover's introspection results. -
Fix configuration error messages when there are no profiles - @EverlastingBugstopper, #995 fixes #783
Rover had a hard time detecting when there were no configured profiles, so it never actually emitted error
E020
. Now it does, and we also get some performance improvements by only parsing environment variables on startup rather than on every time they are needed. -
No longer panic when printing large output - @EverlastingBugstopper, #955 fixes #842
Migrate away from the
println
andeprintln
macros that can cause panics from time to time and instead use calm_io to gracefully handle output. -
Lowers the maximum required
glibc
version from 2.18 to 2.17 - @EverlastingBugstopper, #990 fixes #991We build Rover in Docker with the
centos:7
base image, which hasglibc
v2.17
installed. This means we can lower our installer requirements to 2.17, allowing folks on older machines like centos to install Rover. Thanks to @theJC for the report and help with testing! -
Removes unused
--profile
argument fromrover subgraph introspect
- @EverlastingBugstopper, #950 fixes #948
🛠 Maintenance
-
Use
apollo-encoder
inrover-client
- @lrlna, #939sdl-encoder
has been replaced with the officialapollo-encoder
from theapollo-rs
ecosystem. -
Add PR template - @EverlastingBugstopper, #488
Now folks who are kind enough to contribute pull requests to Rover's repository will have a helpful template to fill out.
-
Fix mechanism for building old versions of Rover - @EverlastingBugstopper, #973 fixes #967
If a build is executed via
cargo xtask dist --version vx.x.x
, it will now actually download the schema it needs from the GitHub release artifacts page in order to build for the exact types that were built at that tagged version. -
Allow Rover to be installed alongside Node.js v17 - @EverlastingBugstopper, #999 fixes #993
-
Run plugin tests and lints in xtask - @EverlastingBugstopper, #977 fixes #909
-
Adds new unused input type to check mutations - @EverlastingBugstopper, #969 fixes #967
Update the inputs to our check mutations to always send
null
for theexcludedOperationNames
field.
📚 Documentation
-
Add docs for
rover supergraph fetch
- @StephenBarlow, #971 fixes #952 -
Miscellaneous documentation polish - @StephenBarlow, #965, #963
This release was automatically created by CircleCI.
If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.
Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.
v0.4.1
🚀 Features
- Track WSL as a separate operating system from Linux - @ptondereau, #921 fixes #511
🐛 Fixes
-
Properly indent multiline field comments in introspection output - @lrlna, #919 fixes #884
-
Properly encode string values with single quotes instead of always using triple quotes - @lrlna, #930
🛠 Maintenance
-
Updates
rover supergraph compose
to use@apollo/federation@v0.33.7
- @EverlastingBugstopper, #929 fixes #924This adds support for users of v16 of the
graphql
library in addition to fixing a bug in directive merging logic. -
Expand valid node runtime range to >=14 <17 for npm installs - @EverlastingBugstopper #900 fixes #912
📚 Documentation
- Miscellaneous copy edits - @StephenBarlow, #923
This release was automatically created by CircleCI.
If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.
Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.
v0.4.0
🚀 Features
-
Federation 2 Support - EverlastingBugstopper, pull/887
The alpha version of Federation 2 has been released!
In Rover, you can use the Federation 2 composition model by running
rover fed2 supergraph compose --config <supergraph.yaml>
after installing therover-fed2
binary.. You must installrover-fed2
before you can runrover fed2 supergraph compose
, and they must be the same version in order to be compatible with each other. -
Graph lifecycle management - EverlastingBugstopper, issue/722 pull/861
Rover now supports the
rover graph delete
command, which will delete all subgraphs in a federated variant, or delete the schema for a non-federated variant.There is also new documentation on how
rover graph publish
androver subgraph publish
create new variants.Additionally, you no longer need to pass
--convert
tosubgraph publish
when publishing a subgraph to a new variant, though you will still need it when converting a non-federated variant to a federated variant. -
Fetch the subgraph's
routing_url
from the graph registry if it isn't specified in asupergraph.yaml
file - EverlastingBugstopper, pull/873Now, whenever
routing_url
is not specified for a subgraph insupergraph.yaml
and the source is agraphref
(which fetches a subgraph from the graph registry), the composed supergraph will use the routing URL from the graph registry for that subgraph instead of an empty string.
🐛 Fixes
-
Output enum descriptions in introspection results - lrlna, issue/878 pull/879
Now, any introspection result that contains descriptions for enums will include them in the output.
-
Output directive arguments in introspection results - lrlna, pull/858
Now, any introspection results that contain directive arguments will include them in the output.
🛠 Maintenance
-
Refactor HTTP client configuration - ptondereau, issue/844 pull/890
When Rover first introduced options to configure the HTTP client, there was a function that took configuration arguments, and returned a client. This has now been refactored to use a more idiomatic builder approach. Thanks @ptondereau!
-
Updates workspace to the 2021 Rust edition - EverlastingBugstopper, pull/886
📚 Documentation
-
Replace 'data graph' with 'graph' in all of the docs - trevorblades, pull/860
-
Add a missing backtick to
$PATH
in the CI install docs - EverlastingBugstopper, pull/874 -
Clarify the drawbacks of publishing introspection results to the graph registry - EverlastingBugstopper, pull/866
This release was automatically created by CircleCI.
If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.
Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.
v0.3.0
Important: 1 breaking change below, indicated by ❗ BREAKING ❗
❗ BREAKING ❗
-
rover supergraph compose
uses a newer composition function that is incompatible with older versions of@apollo/gateway
- EverlastingBugstopper, issue/801 pull/832The
rover supergraph compose
command produces a supergraph schema by using composition functions from the@apollo/federation
package. Because that library is still in pre-1.0 releases (as are Rover and Apollo Gateway), this update to Rover meansrover supergraph compose
will create a supergraph schema with new functionality. In turn, this requires that you update your@apollo/gateway
version to >= v0.39.x.
🚀 Features
-
Adds options to bypass TLS validation - EverlastingBugstopper, issue/720 pull/837
In some configurations, often on internal networks, you might need Rover to communicate over encrypted channels (e.g., HTTPS) but avoid the more stringent digital certificate verifications that validate hostnames. You might even need to bypass the digital certificate validation entirely. This is generally not recommended and considered to be much less secure but for cases where it's necessary, but now there are two flags you can use to configure how Rover validates HTTPS requests:
-
The
--insecure-accept-invalid-hostnames
flag disables hostname validation. If hostname verification is not used, any valid certificate for any site is trusted for use from any other. This introduces a significant vulnerability to person-in-the-middle attacks. -
The
--insecure-accept-invalid-certs
flag disables certificate validation. If invalid certificates are trusted, any certificate for any site is trusted for use. This includes expired certificates. This introduces significant vulnerabilities, and should only be used as a last resort.
-
-
Adds option to increase rover's request timeout - EverlastingBugstopper, issue/792 pull/838
By default, Rover times out requests to the Apollo Studio API and your graph endpoints after 30 seconds. Now, if you're executing a command that might take longer than 30 seconds to process, you can increase this timeout with the
--client-timeout
option like so:rover subgraph check my-graph --validation-period 1m --client-timeout=60
🛠 Maintenance
-
Simplify error formatting - EverlastingBugstopper, pull/845
Now, Rover always indents the suggestion by 8 spaces instead of determining its length based on the length of the error descriptor, and the underlying cause of request errors will only be printed once.
📚 Documentation
-
Clarify
--output json
support in migration guide, and provide an examplejq
script - EverlastingBugstopper, issue/839 pull/840The Apollo CLI migration guide now mentions Rover's support for
--output json
, and our--output json
docs now link to an example bash script for converting a check response to markdown.
This release was automatically created by CircleCI.
If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.
Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.
v0.2.1
🐛 Fixes
-
Properly swallow unparseable git remotes - EverlastingBugstopper, issue/670 pull/760
In v0.2.0, we fixed a crash that occurred for users with non-standard git remotes. While the crash
itself no longer occurred, the crash report itself was still generated - this is no longer the case.
🛠 Maintenance
-
Move markdown link checker to
cargo xtask lint
- EverlastingBugstopper, issue/774 pull/778We now check for broken markdown links through
xtask
, meaning you can more accurately check if CI will pass locally. -
Migrate lints/tests from GitHub Actions to CircleCI - EverlastingBugstopper, issue/774 pull/781
-
Run tests on centos 7 and ensure the binary only depends on glibc <= 2.18 - EverlastingBugstopper, pull/800
-
Migrate release process from GitHub Actions to CircleCI - EverlastingBugstopper, issue/795 pull/808
📚 Documentation
-
Clarifies setting HEAD SHA for GitHub Actions - StephenBarlow, pull/763
Extended the section in the docs for configuring GitHub Actions
to include instructions for properly configuring the git context. -
Fix a typo in the docs - SaintMalik, pull/762
This release was automatically created by CircleCI.
If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.
Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.
v0.2.0
🚀 Features
-
Stabilize and document structured output - EverlastingBugstopper & StephenBarlow, issue/741 & pull/750/pull/752
Rover now has an
--output
parameter on every command that allows you to format Rover's output as well-structured JSON. Documentation for this feature can be found here. -
Add an error message when an input schema is empty - EverlastingBugstopper, issue/724 pull/726
If the input to
--schema
was ever empty, you'd get some fairly strange and unexpected error messages. Now, if you supply an empty schema via the--schema
argument, you'll get an error message informing you as such. -
Retry HTTP requests that respond with 500-599 errors - EverlastingBugstopper, issue/693 pull/727
Now, by default, Rover will retry any requests that result in an internal server error for up to 10 seconds.
🐛 Fixes
-
Fix description encodings for introspection results - lrlna, issue/728 pull/742
Rover will now print descriptions for fields and inputs with correct spacing between triple quotes.
-
Don't panic on git remotes without an apparent owner - EverlastingBugstopper, issue/670 pull/731
Most git remotes include an author and a repo name, but this isn't always the case. One of Rover's dependencies assumed this was always the case, and would panic if it wasn't the case. This broke workflows for people who had these types of git remotes, but it won't anymore!
-
Properly send validation period as part of checks configuration - EverlastingBugstopper, issue/737 pull/738
-
Use correct cargo target for xtask commands - EverlastingBugstopper, issue/582 pull/730
Any
cargo xtask
command that relies on cargo targets will now determine a correct default if building on a machine with a CPU architecture other thanx86_64
🛠 Maintenance
-
Add
cargo update
tocargo xtask prep
step - EverlastingBugstopper, issue/746 pull/747This change makes sure that our dependencies are automatically updated as part of our release process.
-
Further DRY StudioClient - EverlastingBugstopper, pull/753
This PR removed some small inconsistencies between HTTP requests made to Apollo Studio vs. those made for user introspection requests.
-
Use our GitHub bug report template for auto-generated panic reports - EverlastingBugstopper, issue/530 pull/732
📚 Documentation
-
Deploy Rover's docs at the root to account for main root-level redirect - trevorblades, pull/744
This is purely a change to how Rover's docs are rolled out, no user facing changes here.
This release was automatically created by Github Actions.
If you would like to verify that the binary you have downloaded was built from the source code
in this repository, you can compare the output of the commands below to the output of the same
commands on your machine.
MacOS
Binaries built for MacOS are signed and notarized, and are automatically verified with Gatekeeper.
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
38011ba3367b7c55ea3c55ba07822d5ef5fafff792368f9dbb43ce86cfbb5ec8
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
906a92b3a78bce4fb6a20fb3d6e5ee5ad350799958294b4fce527dcea51f42a2
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
638b843f933f208d79de69dbdd21ed7a073850f674d112f4b0f568e493e8a930
Windows
Manual Verification:
PS> Get-Command rover
CommandType Name Version Source
----------- ---- ------- ------
Application rover.exe 0.0.0.0 C:\Users\username\.rover\bin\rover.exe
PS> Get-FileHash C:\Users\username\.rover\bin\rover.exe
Algorithm Hash Path
--------- ---- ----
SHA256 1972ca5136c913c2786b3bac5210c3c9fe78f353471c3fcf2ff1f8616cc06970 C:\Users\username\.rover\bin\rover.exe
v0.2.0-beta.1
🐛 Fixes
-
Update GraphQL types to match new API Schema - EverlastingBugstopper, issue/696 pull/697
The Apollo Studio API introduced a change that made a field in the
subgraph publish
mutation nullable. This caused our codegen to fail and users started getting some cryptic error messages for failed publishes in older versions of Rover.This release handles these cases better and also introduces local tooling for building old versions of Rover with the API schemas that were in production at the time that version was published with
cargo xtask dist --release vx.x.x
.
📚 Documentation
-
Fix broken link to supergraph schemas - abernix, issue/687 pull/706
There was a broken link in our docs that now points to a set of definitions of supergraphs and subgraphs that lives in the docs for Federation.
This release was automatically created by Github Actions.
If you would like to verify that the binary you have downloaded was built from the source code
in this repository, you can compare the output of the commands below to the output of the same
commands on your machine.
MacOS
Binaries built for MacOS are signed and notarized, and are automatically verified with Gatekeeper.
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
1735af0a761b660174778024cfba0d0b6fcce822d599972b819db9537be42908
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
5c15f48c316c4633d9b17770facddde2b7296a53a7d8b82e6f42382550a7ddf0
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
052944b22ae70d8e286a7868105455e9c573d133a99e9fb0cf0be8abca0bb0b8
Windows
Manual Verification:
PS> Get-Command rover
CommandType Name Version Source
----------- ---- ------- ------
Application rover.exe 0.0.0.0 C:\Users\username\.rover\bin\rover.exe
PS> Get-FileHash C:\Users\username\.rover\bin\rover.exe
Algorithm Hash Path
--------- ---- ----
SHA256 42e992201c6c88639a8f8991fa9ac3dbd02116e01cacd59fbfe6089b345f0b06 C:\Users\username\.rover\bin\rover.exe
v0.1.10
🐛 Fixes
-
Update GraphQL types to match new API Schema - EverlastingBugstopper, issue/696 pull/697
The Apollo Studio API introduced a change that made a field in the
subgraph publish
mutation nullable. This caused our codegen to fail and users started getting some cryptic error messages for failed publishes in older versions of Rover.This release handles these cases better and also introduces local tooling for building old versions of Rover with the API schemas that were in production at the time that version was published with
cargo xtask dist --release vx.x.x
.
📚 Documentation
-
Fix broken link to supergraph schemas - abernix, issue/687 pull/706
There was a broken link in our docs that now points to a set of definitions of supergraphs and subgraphs that lives in the docs for Federation.
This release was automatically created by Github Actions.
If you would like to verify that the binary you have downloaded was built from the source code
in this repository, you can compare the output of the commands below to the output of the same
commands on your machine.
MacOS
Binaries built for MacOS are signed and notarized, and are automatically verified with Gatekeeper.
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
d838891683151bec928881542cd9d3a4072625ad87c77519e86c1d557d95098b
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
5cb45c8c8e1287cb00b09e8e8eb1b294bafd70e5a66af46956dc188ddb15abae
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
42df2dc0c323ff9de8d4db6733b58335d7aa96eca0b3056f09d63b8b85528a81
Windows
Manual Verification:
PS> Get-Command rover
CommandType Name Version Source
----------- ---- ------- ------
Application rover.exe 0.0.0.0 C:\Users\username\.rover\bin\rover.exe
PS> Get-FileHash C:\Users\username\.rover\bin\rover.exe
Algorithm Hash Path
--------- ---- ----
SHA256 cb9a83fc7d9ffacb3b4e107035b99424cb568e1a1b5e4c8ac997c01d75228ac7 C:\Users\username\.rover\bin\rover.exe
v0.2.0-beta.0
🚀 Features
-
Adds structured output to Rover - EverlastingBugstopper, issue/285 pull/676
Rover now has an
--output
parameter on every command that allows you to format Rover's output as well-structured JSON. This structure is not set in stone and will change prior to a stable release. If you write scripts around this structured output, then you should add a check in your scripts for the top leveljson_version
key, and make sure to update your scripts when that version is not what you expect (the first version is1.beta
).We'd love your feedback on this new feature, or if you notice any bugs in your existing workflows, so please submit issues!
This release was automatically created by Github Actions.
If you would like to verify that the binary you have downloaded was built from the source code
in this repository, you can compare the output of the commands below to the output of the same
commands on your machine.
MacOS
Binaries built for MacOS are signed and notarized, and are automatically verified with Gatekeeper.
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
6af4b4537d6c9be7a168f8ef629ed090b9db310407b3512f1ab634c81053168c
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
80ba8fbe7342c146750ba233be63c31092f702050f8a312f5651fff2dc56d073
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
dfadb83a1b4453f44f59c1ce58975e480f00b798480014aa5d9ea6da92d5410e
Windows
Manual Verification:
PS> Get-Command rover
CommandType Name Version Source
----------- ---- ------- ------
Application rover.exe 0.0.0.0 C:\Users\username\.rover\bin\rover.exe
PS> Get-FileHash C:\Users\username\.rover\bin\rover.exe
Algorithm Hash Path
--------- ---- ----
SHA256 70c812e6596a4725fc189efdb7febe58e97e89d160781a3b01f662074dfcf9c2 C:\Users\username\.rover\bin\rover.exe
v0.1.9
🚀 Features
-
Updates
@tag
/@inaccessible
composition algorithm inrover supergraph compose
- trevor-scheer/EverlastingBugstopper, issue/682 pull/684- Includes simple merging/union rollup of
@tag
directives from subgraphs into a supergraph - Allows usage of
@tag
directives on all subgraph fields - Merges subgraph
@tag
directives into a supergraph- if ANY instance is tagged, the
@tag
is union merged
into the supergraph
- if ANY instance is tagged, the
- Includes simple merging/union rollup of
-
rover subgraph publish
androver subgraph delete
now acknowledges operations with no composition errors. - EverlastingBugstopper, issue/632 pull/685Previously, if there were no composition errors on deletions/publishes of subgraphs, Rover would simply not display errors. Now, Rover will output a success message if there were no composition errors. This should make these types of successes more clear in CI workflows that may be publishing more than one subgraph at a time.
🛠 Maintenance
-
Make the test process fail in CI if there are test failures - EverlastingBugstopper, pull/683
For some reason,
cargo test
was exiting with code0
even if there were failed tests. We run tests through our own customxtask
, so we've added a wrapper aroundcargo test
to detect and propagate the problems with our tests in our CI logs. -
Updates dependencies - EverlastingBugstopper/dependabot, pull/671, pull/672, pull/673, and pull/680
anyhow
1.0.41
->1.0.42
cc
1.0.68
->1.0.69
cargo_metadata
0.13.1
->0.14.0
termimad
0.13.0
->0.14.0
This release was automatically created by Github Actions.
If you would like to verify that the binary you have downloaded was built from the source code
in this repository, you can compare the output of the commands below to the output of the same
commands on your machine.
MacOS
Binaries built for MacOS are signed and notarized, and are automatically verified with Gatekeeper.
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
d5f2919872cc6c7982a5078d33d9c8adcdaf4cbc470cb2a6c0e85f06327a4586
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
f245ec1a536ae51dca7c797651405d2d01310416ae01944782c15c42bf46733c
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
293e96b57bb3fc3924169c27c53780b50c580d2e9905aae6a4aa191c1d7b67cc
Windows
Manual Verification:
PS> Get-Command rover
CommandType Name Version Source
----------- ---- ------- ------
Application rover.exe 0.0.0.0 C:\Users\username\.rover\bin\rover.exe
PS> Get-FileHash C:\Users\username\.rover\bin\rover.exe
Algorithm Hash Path
--------- ---- ----
SHA256 00a692c3078bc91e21aef756243b4679a99f18e4f3816b9fd1421463979bf9db C:\Users\username\.rover\bin\rover.exe