Releases: apollographql/rover
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 OpenSSL@v1.1 - 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
v0.1.2
🐛 Fixes
-
Fix unusable
rover subgraph check
- EverlastingBugstopper, issue/553 pull/555Rover v0.1.1 had a regression that didn't allow
rover subgraph check
to be run on federated graphs due to a logic error. Thanks to @setchy for reporting this so quickly!
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
e7b6958ab93e2af3db0df042de0c6f0ee29224497c054fb617e3ef19498257ae
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
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 14aaa45f36f704d689a8d57008d7fb33ea399b94fc70d84cd342ef6f9a76d766 C:\Users\username\.rover\bin\rover.exe
v0.1.1
🚀 Features
-
Prebuilt binaries for Alpine Linux - EverlastingBugstopper, issue/537 pull/538
Previously, Rover was only built for systems that had
glibc
>= 2.18 installed. This was due to the fact that we embed v8 into the binaries to execute the JS-poweredrover supergraph compose
command.Our CI pipeline now produces a statically-linked binary compiled with
musl-libc
that does not includerover supergraph compose
. Our installers will check if you have a compatible version ofglibc
, and if you do not, it will download the new statically linked binary and warn you that it is missing some functionality.We hope to bring
rover supergraph compose
to Alpine in the future, though how soon that future will come is not yet known.
🐛 Fixes
-
No longer panic on mistyped graph names/invalid API keys - EverlastingBugstopper, issue/548 & issue/550 pull/549
We received some user reports of Rover crashing if a graph name or API key was invalid. In these cases, you will now receive an actionable 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
f54d9cb8fe06e3474ca3ad8334ece1a6f82c24706d224a8c108a2860e34a2ea6
GNU Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
MUSL Linux
Manual Verification:
$ sha256sum -b $(which rover) | cut -d ' ' -f1
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 a07b2ca2b4a28d87b37a6bcd9df98e48fc924aabc3c3143b76ed500229842991 C:\Users\username\.rover\bin\rover.exe
v0.1.0
Important: 2 breaking changes below, indicated by ❗ BREAKING ❗
❗ BREAKING ❗
-
Removes -V/--version flag from subcommands - EverlastingBugstopper, pull/487
Rover's subcommands will always be the same version as Rover, so we no longer accept
-V
or--version
on Rover's subcommands. -
Disallow all non-UTF-8 argument values - EverlastingBugstopper, pull/487
Rover will no longer accept any argument values that cannot be properly interpreted as UTF-8.
🚀 Features
-
rover supergraph fetch
- EverlastingBugstopper, issue/452 pull/485This new command allows you to fetch the latest successfully composed supergraph SDL. This can be used to bootstrap a local graph router, or to inspect the schema that is used in managed federation.
-
Adds link to the Apollo CLI -> Rover migration guide in
rover docs open
- EverlastingBugstopper, pull/492 -
rover supergraph compose
allows for registry and introspection SDL sources - lrlna, issue/449 pull/519Pulls subgraphs from various sources specified in the YAML config file. A valid config can now specify schema using Apollo Registry refs (
subgraph
,graphref
), local file references (file
) and subgraph introspection (subgraph_url
):subgraphs: films: routing_url: https://films.example.com schema: file: ./films.graphql people: routing_url: https://example.com/people schema: subgraph_url: https://example.com/people actors: routing_url: https://localhost:4005 schema: graphref: mygraph@current subgraph: actors
-
--routing-url
is now an optional argument torover subgraph publish
- EverlastingBusgtopper, issue/169 pull/484When publishing a subgraph, it is important to include a routing URL for that subgraph, so your graph router
knows where to route requests for types in a subgraph. Previously, you had to specify this argument on
everyrover subgraph publish
, but now it acts as an upsert, meaning you must include it on your first
rover subgraph publish
, but subsequent publishes will retain the existing routing URL for a subgraph
if--routing-url
is not specified. -
rover explain
command added - JakeDawkins, pull/457When encountering most errors in Rover, there will be an error code in the format
E###
printed along with the error description. Runningrover explain CODE
will now print a more detailed description of the error along with any
resolution steps and relevant docs links. -
Better error messages for HTTP errors - EverlastingBugstopper, [issue/489] [pull/518]
Previously, Rover obfuscated the information about HTTP errors that occurred. Now, if something goes wrong between your machine and any HTTP server, you'll get some more information about what exactly went wrong.
-
Add help text to
--log
argument - EverlastingBugstopper, pull/486 -
Updated descriptor formatting - lrlna, pull/533
We've added some bold and extra newline spacing to the human-readable descriptors for Rover's output.
-
Trim down log verbosity - EverlastingBugstopper, pull/532
-
Display "unspecified" in
rover subgraph list
output instead of "N/A" - abernix, issue/483 pull/505 -
Adds
rover docs open migration
- EverlastingBugstopper, pull/503There is a new migration guide from the old Apollo CLI to Rover, and this command will open that page for you.
🐛 Fixes
-
Ignore routing URL argument in telemetry - EverlastingBugstopper, pull/506
-
Print output to file without additional newline - JakeDawkins, issue/469 pull/475
🛠 Maintenance
-
Removes unnecessary custom URL parser - EverlastingBugstopper, pull/493
structopt
will automatically use theFromStr
implementation on theUrl
type, so
we have removed the custom parser we were previously using. -
Check for broken markdown links in CI - EverlastingBugstopper, issue/444 pull/460
Occasionally links get out of date (or they were mistyped in the first place) - we want to
make sure links in this repository remain functional, so we now check for broken markdown
links in our CI jobs that run on each push. -
Addresses clippy 1.52 warnings - EverlastingBugstopper, pull/515
-
Fix credential retrieval in
rover config whoami
- EverlastingBugstopper, issue/514 pull/516rover config whoami
no longer fails if$APOLLO_KEY
is set but there is no default authentication profile. -
Point users towards issue templates instead of blank new issue page - EverlastingBugstopper, pull/509
📚 Documentation
-
Remove public preview section from docs - StephenBarlow, pull/527
Rover is now generally available!
-
Document using Rover with BitBucket Pipelines - setchy, pull/491
-
Remove incorrect note about subgraph schemas - JakeDawkins, pull/481
-
Remove automated steps from release checklist - EverlastingBugstopper, pull/473
Quite a few of the steps in our release checklist have been automated as a part of our CI strategy, so those steps have been removed from the manual checklist.
-
GitHub Releases page now explain how to validate the autogenerated SHA-256 checksums. - EverlastingBugstopper, pull/445
-
Update demo introspection endpoint from https to http - abernix, pull/534
-
Document Rover's inability to run on Alpine images - lrlna, issue/524 pull/528
-
Change "Discuss on Spectrum" link to go to Spectrum's root - abernix, issue/492 pull/507
This release was automatically created by [Github Actions](./.github/wor...
v0.0.10
🚀 Features
-
Prints information about opting out of anonymized usage data collection after installation - EverlastingBugstopper, pull/456
-
Report SHA-256 hash of git remote URL - EverlastingBugstopper, issue/313 pull/461
Our anonymized usage data will now report the hash of a git remote URL if it exists to more accurately determine the number of unique projects Rover is used in.
-
Client returns an error on non-200 status codes - EverlastingBugstopper, pull/472
Sometimes when performing HTTP requests, a non-200 status code is returned. This is now properly handled, and Rover's HTTP client will return a proper error message informing you of the bad response.
🐛 Fixes
-
Adds a newline to all output to stdout - EverlastingBugstopper, issue/458 pull/462
Rover no longer has the bug where it wouldn't conclude its output with a newline. Now we don't make your shells upset!
🛠 Maintenance
-
Automatically add triage labels to issues created with templates - JakeDawkins, pull/448
-
Refactor API key loading - EverlastingBugstopper, pull/463
Made a slight performance refactor to how we load our API keys that reduces the number of filesystem reads.
-
Update dependency crates - EverlastingBugstopper, pull/470
📚 Documentation
-
Updates language of migration guide - StephenBarlow, pull/446
SHA256 of release binaries for validation:
- Linux: 679908058d1c352218ed4850f562bde1f64d6bb8ddb39d182469f8274a5a9ce7
- Windows: 1b1b750aa28ded5e7bf1900343a9bdc3021fc2b0ec65865058e1f5b6084d5cb2
- MacOS: 2bab6f2cc7d41bb881564cbd1eef72c22cec2f84c030298d6bb343b7c3128f52
v0.0.9
This release is a small release to fix the automated release process, and should be considered an extension of the previous (v0.0.8) release
🛠 Maintenance
-
Fix boolean logic in release action - EverlastingBugstopper, pull/442
0.0.8 was released to npm as a beta by accident because of an environment variable being treated as a boolean when it's a string. This just fixes that for a new release.
SHA256 of release binaries for validation:
- Linux: d5cdc0ff48b2c4b886e33e85b66627af31c247074393e9055fc22f40cdd3aa3d
- Windows: 55a333a62c9295a409008b5258c91b57050b541b259bdc76bbb5ef77f6f8caa3
- MacOS: e49f88721aec929ecf1a850e01b1460c3e987d4589faca85edf29d0bd79943ee