Releases: apollographql/rover
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
v0.0.8
[0.0.8] - 2021-04-13
π Features
-
Users can now install Rover with a shorter URL - JakeDawkins, issue/287 pull/426
Instead of downloading Rover's install script from the tagged GitHub URL, you can now use the much simpler endpoints:
https://rover.apollo.dev/nix/latest and https://rover.apollo.dev/win/latest.
You can see our documentation for more info on the new installation pattern.
-
Print link to documentation after installation - EverlastingBugstopper, issue/141 pull/437
After a user installs Rover, we now print a link to the getting started page at
https://go.apollo.dev/r/docs.
π Fixes
-
Deserialize supergraph configuration to a deterministic data structure - lrlna, issue/422 pull/423
Previously, when Rover deserialized a supergraph configuration file, it did so using a HashMap.
This made the results ofrover supergraph compose
non-deterministic, which was undesirable.
By switching from a HashMap to a BTreeMap,rover supergraph compose
is now deterministic.
π Maintenance
-
Update telemetry URL - JakeDawkins, pull/427
Telemetry is now routed through a Netlify function instead of a Cloudflare Worker.
π Documentation
-
Add Apollo CLI to Rover migration guide - JakeDawkins, issue/284 pull/425
Rover now has a migration guide for users coming from the Apollo CLI. You can see it here.
SHA256 of release binaries for validation:
- Linux: 37718d579fa1a168924e46ab4f1a814a4fc4a85e7965b1515a90f48d189286e4
- Windows: 1e8fea7bbc32df1a8d5e496ceef9a7dbb452865e710c67f4e667e30164efb87e
- MacOS: 2b72c6603638ef28fc691b0a61c8147bd6d850811e25a54deb39c8cb56b63d52
v0.0.7
π Fixes
π Documentation
-
Added specificity to Rover's public preview period docs - ndintenfass, pull/415
-
Small categorization update - StephenBarlow, pull/414
SHA256 of release binaries for validation:
- Linux: c20c85690fa861100db23f6d230ffd5ebfbf1613d8cc027ce0417d237901a506
- Windows: b08f2d60d7865fc630761e5c41b8bdb472dceff4b7f85dc649ed39df5e29fc85
- MacOS: b03c5862b14cea59cbf66c676ce5b5f8e5e759335824acd213c26eda55ae477a
v0.0.6
π Features
-
Add postinstall instructions - EverlastingBugstopper, pull/406
Adds a message after an install on how to add Rover to a user's PATH.
π Fixes
-
Change 'CSDL' to 'Core Schema' - lrlna, pull/403
Output of
rover supergraph compose
is a Core Schema. Our output
previously indicated that it was aCSDL
. -
Remove Rover binary before overwriting it - EverlastingBugstopper, issue/398 pull/400
Updating Rover with
curl
required a restart on MacOS due to Apple's
Gatekeeper not recognizing that a new package has been installed on a
user's system. This forces the installer to remove previously Rover
directory and its installation and do a fresh installation. -
Adds entitlements to MacOS signed binaries - EverlastingBugstopper, issue/399 pull/405
rover supergraph compose
process has been gettingkilled
on MacOS in
v0.0.5
release. This was happening due to the fact that we are using
deno-core
to execute composition, a package that requires access to
memory management. This fix adds an Entitelement when notarizing Rover that
specifically allows for unsigned packages to have access to memory
management.
SHA256 of release binaries for validation:
- Linux: ef996fa6da002629a118bf3de879f66b55db4ef95692bf325424d0ab695eee95
- Windows: a9475f5876f01e665b729634f37cce086fe592525a312b9340ecabf49ad1585c
- MacOS: b8570cdd87c11aa304eae8f49e65e4a6222388df4178b610839b63a9022e63d8
v0.0.5
Important: 2 breaking changes below, indicated by β BREAKING β
π Features
-
Adds introspection ability for subgraphs - lrlna, issue/349 pull/377
A new command,
rover subgraph introspect
has been added. This command
runs a federated introspection query against a server which has
implemented the requirements of the federation
specification.
This command accepts endpoint headers (-H
,--header
) for making the introspection
request (if required) and outputs SDL to stdout. -
Fallback to monochromic output in installer when
tput
is unavailable - abernix, issue/371 pull/372The
tput
command allows easier ANSI output using named values in rather than
control characters.While we could just use control characters and maintain colored output in the
absence oftput
, it's probably also reasonable to gracefully fall back to
monochromatic output.
β BREAKING β
-
Renames
core build
tosupergraph compose
- lrlna, pull/391To align with other Apollo teams on the usage of
supergraph
and
composition
, we are renamingcore build
tosupergraph compose
. -
Updates [email protected] - abernix, pull/396
Updates harmonizer to the latest version. This version now composes and
returns a core schema instead of CSDL. CSDL was an internal implementation
of composition and this new format is meant to bring some stability torover supergraph compose
.
π Fixes
-
Handle 400-599 HTTP responses - lrlna, issue/394 issue/187 pull/395
Previously, Rover did not provide errors for any HTTP requests that return a status code between 400 and 599. This fix makes sure Rover checks for those errors before moving on to parsing the response body.
This fix also does an extra check for 400 errors, as the Apollo
Server sends additional information that we can display to users.
π Maintenance
-
Sign and notarize MacOS binaries as part of CI - EverlastingBugstopper, pull/363
This automates our signing and notarization process when releasing MacOS
binaries. This is especially necessary to install and run Rover on latest
M1s and Big Sur. -
Test, build and release on ubuntu-16.04 - abernix, pull/381
This pins us to Ubuntu 16.04 which ships with glib 2.19. This should allow
us to work with a wider range of operating systems than the newer glib
that we get with Ubuntu 20.04, which is ubuntu-latest on GitHub Actions
Virtual Environments (which resulted in a Rover that wouldn't run on
Ubuntu 18.04).Ubuntu 16.04 is LTS until April 2024, and is still receiving active
updates through the LTS program. -
Cache Rust artifacts in CI linter job- EverlastingBugstopper, pull/365
The rest of our GitHub actions workflows pull from the cache to take
advantage of Rust's incremental compilation. We now do this for clippy
too so it finishes (and fails) faster. -
Addresses new clippy 1.51 warning - EverlastingBugstopper, pull/364
Addresses some stylistic problems noticed by the new version of our linter clippy
π Documentation
-
Update documentation for 0.0.5 release- JakeDawkins StephenBarlow EverlastingBugstopper, pull/389
Documents recent additions to Rover in detail, including
rover supergraph compose
,rover subgraph introspect
androver graph introspect
.
SHA256 of release binaries for validation:
- Linux: 016dc1a9cb53cac667cf52fccf120f2e6fcd7dba13991d937d49c59468a14751
- Windows: bcdf4b8e7c41d2598b8cbe56696f0d2ad640949f4886807de62b4980984f3f03
- MacOS: 86260f8d4171a43d228fc4beca5def5ff54d8e6c1525dbd616323a097652a13e
v0.0.4
Important: Two breaking changes below, indicated by β BREAKING β
π Features
-
Core schema building capabilities - EverlastingBugstopper, pull/340
Adds a new command,
rover core build
to handle building
core schema documents
from multiple subgraph schemas. This also adds a new config format to support
this command in YAML. Currently, this is only documented in pull/340. -
Adds introspection ability for graphs - lrlna, issue/180 issue/171 pull/283
A new command,
rover graph introspect
has been added, usable for introspecting
graphs (not subgraphs). This command accepts endpoint headers for making the
introspection request (if required) and outputs SDL to stdout.
β BREAKING β
-
Rename
push
topublish
everywhere - JakeDawkins, issue/344 pull/347"Publish" is a more correct name for what these commands do. We wanted to be
extra clear about its name matching its functionality, so any usage ofpush
commands should now bepublish
. -
Rename
committer
toauthor
- EverlastingBugstopper, issue/338 pull/339Note: This is only breaking change if you were previously using the
APOLLO_VCS_COMMITTER
env variable. If so, migrate by changing that environment variable toAPOLLO_VCS_AUTHOR
.Changes the underlying git context implementation to report the
author
of a commit rather than acommitter
. This is primarily intended to properly
link the real author with a commit in Apollo Studio.
π Fixes
-
Output composition errors to stderr - EverlastingBugstopper, pull/335
There was an incorrect usage of
tracing::error
, causing composition errors
to not show up when expected. This change unifies this error printing with the
rest of the project.
π Maintenance
-
Auto-bump versions in install scripts - EverlastingBugstopper, pull/332
Added auto version bumping in the build script, so there's no chance the Rover
team will miss this important step in the release process. -
Don't print by default for automatic update checks - EverlastingBugstopper, pull/342
When Rover automatically checks for updates every 24 hours, it no longer will
print if there is no update available. It will still print for manual checks
and if Rover is out of date. -
Add metadata to
Cargo.toml
- EverlastingBugstopper, pull/346In preparation for future releases to crates.io, we've
added relevant metadata to the Cargo.toml file for the project. -
Linux build is now built for a GNU target - lrlna, pull/359
Linux Rover distribution used to be built with musl. We now transitioned
to the Tier 1 GNU target to accommodate the fact that one of our
dependencieds, rusty_v8, does not work well with musl-libc.
π Documentation
-
Adds
APOLLO_HOME
variable to docs - EverlastingBugstopper, pull/341APOLLO_HOME
is the override variable for Rover's parent directory, where the
binary lives. This was previously undocumented, but now it's not!
Installation Methods
Linux and MacOS curl | sh
installer
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.4/installers/binstall/scripts/nix/install.sh | sh
To download older versions of Rover, use the VERSION
env variable when executing the installer (note: the v
in the version number):
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.4/installers/binstall/scripts/nix/install.sh | VERSION=v0.0.1 sh
Windows PowerShell installer
iwr 'https://raw.githubusercontent.com/apollographql/rover/v0.0.4/installers/binstall/scripts/windows/install.ps1' | iex
SHA256 of release binaries for validation:
- Linux: 8f833805bcbe10173ba1c74cb2650647f67d47cd0a42c19032f14bf531965964
- Windows: 50228d4d62ed486e5e0071b16d3049ea808d7109c207a7e9a1e274e3e8d0734a
- MacOS: 186bafe5341a58b40168cc416d5e19f86695e2541ee9c1afa6d1bdbb0159c9d5