Releases: apollographql/rover
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
v0.1.8
🚀 Features
-
Adds preview support for
@tag
and@inaccessible
directives - EverlastingBugstopper, pull/631Preview support for composing subgraphs with
@tag
and/or@inaccessible
core features usingrover supergraph compose
. Note that@apollo/gateway >= 0.33
is required when using preview support for these core features. -
Auto-decode gzipped responses - EverlastingBugstopper, pull/650
If your GraphQL server responds with an introspection response compressed with brotli, it will now be decoded automatically instead of failing the command.
🐛 Fixes
-
Use built-in root certificates and re-use HTTP connection pool - EverlastingBugstopper, issue/645 pull/649
Rover now uses local CA Certificates along with your operating system's native TLS implementation instead of the Rust-based WebPKI implementation.
🛠 Maintenance
-
Re-use HTTP connection pool - EverlastingBugstopper, pull/650
Rover will now create and reuse the same HTTP connection pool for subsequent requests, which should slightly improve performance.
-
Removes unused dependencies - EverlastingBugstopper, pull/651
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
36884e9ad63cc44b2f309f0622d13f5e03a321dae24d827e3bdb39921f917029
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
ac4722f5cc195d2c25bd81944216944259de88c64bc331a1eacfa8d4f7cd4cc2
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
fefa77dd472c68571e4355fe1f5fad9653c7afba36ad5c2e1156066bdfa40e35
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 f5cc8df724dc5d720bdad57bc2f7d0d62919e0331b9dc3b09b41590263b79ba5 C:\Users\username\.rover\bin\rover.exe
v0.1.7
🚀 Features
-
Auto-decode gzipped responses - EverlastingBugstopper, issue/608 pull/620
If your GraphQL server responds with a gzipped introspection response, it will now be decoded automatically instead of failing the command.
🐛 Fixes
-
Prevent update checker from aborting commands - EverlastingBugstopper, pull/624
Previously, if there was a spurious network error when attempting to check for a newer version of Rover, the command would fail. This is no longer the case, if GitHub is down, you will still be able to run Rover commands.
🛠 Maintenance
-
Address Clippy 0.1.53 warnings - EverlastingBugstopper, pull/621
Updated Rover's code to conform to the latest lints.
-
New
cargo xtask
command suite - EverlastingBugstopper, issue/388 pull/562We've replaced a decent chunk of bash scripting in GitHub actions with Rust code. This means you can locally run most commands you need for contributing to Rover with
cargo xtask
. -
Additional integration tests - EverlastingBugstopper, pull/629
We've set up some integration tests that run
make ci
after cloning the supergraph-demo.
📚 Documentation
-
Extend contribution guide and create an architecture document - EverlastingBugstopper, JakeDawkins & StephenBarlow, issue/561 pull/594
Our new architecture document includes a guide on how to add a new command to Rover, and the
CONTRIBUTING.md
file at the root of the Rover repository is automatically included on our documentation site. -
Use rover@latest in BitBucket documentation - setchy, pull/617
-
Small clarifications/tweaks - StephenBarlow, pull/619
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
7e063be5a1f1734bb68790c11fe9cde8edfca179251468e02d0f3dcebdd22b7f
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
818086d055c0d9d86dc65e389ad26189d0ac454a9ac12a962a3951b09901b202
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
389f097659a56e0f43f983495bfb63fa4437ce569f0484915e0270ee7dd50eab
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 5f8f60b813ddb9c986aaeabe4aad9880af0db17741ba31c1391ea859f4d90f52 C:\Users\username\.rover\bin\rover.exe
v0.1.6
🐛 Fixes
-
Fix panic on empty GraphQL Error array - EverlastingBugstopper, issue/590 pull/592
In certain scenarios, Rover will encounter GraphQL errors, which are return as an array of strings. Previously, we were not checking if that array was empty before attempting to print the first error in the array, which caused Rover to panic. Rover has now been refactored a bit to have simpler GraphQL error handling and will no longer panic in this scenario.
-
Don't mangle
stderr
when an update to Rover is available - EverlastingBugstopper, issue/584 pull/586Once a day, when a new version of Rover is available, it messages users letting them know that they can update. Unfortunately, this message was being printed to
stdout
instead ofstderr
due to a bug in an upstream dependency. This bug has now been fixed, and update messages are now properly routed tostderr
.
📚 Documentation
-
Update Error Code docs title - StephenBarlow, pull/597
"Index of Errors" -> "Rover CLI error codes"
-
Bump docs theme - StephenBarlow, pull/596
Updates Gatsby and Apollo's Gatsby theme to match the rest of Apollo's docs.
-
Correct instance of
subgraph push
- DNature, pull/585Fixes an instance of
subgraph push
to besubgraph publish
.
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
ca494a054bfeb99e3316495e61ecef21251b853913cd8a007ef7c042e6e3b56b
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
567081333e494559fbc58db1c2967f887c8d2b16c723e182532cd9386adb0577
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
2241683809b9d332e305aff8cac67f5e82cde0f08c19b929d6073debfd05d48b
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 c441b8097ba6326c61f764b32fc84c5a894a842ecd65be0bf31577d33e79b087 C:\Users\username\.rover\bin\rover.exe
v0.1.5
🐛 Fixes
-
Vendor [email protected] - EverlastingBugstopper, issue/579 pull/580
Version 0.1.3 of Rover attempted to vendor OpenSSL as part of its build process, but MacOS comes preinstalled with LibreSSL instead of OpenSSL. Unfortunately, LibreSSL does not work with Rosetta 2, which allows M1 Mac users to emulate x86_64 code on their machines. Installing and specifying the correct OpenSSL version solves this problem.
-
Don't squash request errors - EverlastingBugstopper, issue/539 & issue/573, pull/574
Rover previously had error handling for using
subgraph introspect
on anapollo-server
instance with introspection disabled, but another attempt to handle HTTP Status Codes as errors superseded that specialized error. This case now has a much more helpful error message.
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
e80359e6bb4244bb1984e632bd049d74f414f37c183a651745c216378bf6cf19
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
49abf3e46c91b1bcd3198942a5c3f80ec1d7c29b787893a2bce9e95dd05c4c03
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
7c5ee024cdd80eb3f642e806d6923e92d413e6aec20c5e2bfa5d7f8fc943849a
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 b40be924477a932a08f0c14de9676751e45b91155e76f6c8e457938e89d8ef40 C:\Users\username\.rover\bin\rover.exe
v0.1.3
🐛 Fixes
-
Remove OpenSSL runtime dependency - EverlastingBugstopper, issue/554 & issue/563, pull/558
Attempts to install Rover on M1 Macs were failing due to issues with OpenSSL. Issues with OpenSSL are incredibly common when writing and distributing cross-platform software, so we've attempted to remedy this issue by embedding (or vendoring) the necessary OpenSSL code directly into Rover's binaries.
-
Remove misfired E005 error - EverlastingBugstopper, issue/570 pull/571
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
98dd11fee33a9a4aa944d109bda2f8ba2fc140bdc0f75f873539a6a59db0e53f
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
21645aa96be15fcd9f2525eb8a87bf9bef40fe2af71e01cd434d7785cff4e0d7
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
6c3b95148910ae59968764c75e73e0ed2f58a42a46ae09b9900f1a82ef9f2367
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 165be24fc94f7015e601edfca79fbc7d887e05e645b5e182a0b72fa03bfd446a C:\Users\username\.rover\bin\rover.exe