Releases: apollographql/rover
v0.0.3
🚀 Features
-
❗ BREAKING ❗ Squash
config show
functionality intoconfig whoami
- EverlastingBugstopper, issue/274 pull/323Since the only thing that
rover config show
did was show the saved api key,
it made sense to squash that functionality into thewhoami
command. We decided
that we'd prefer not to ever expose the full api key to stdout (you can still
find it in the saved config file), but we still show the first and last 4
characters of it to help with debugging. -
Add api key origin to
whoami
command - EverlastingBugstopper, issue/273 pull/307The
whoami
command, which is used to verify api keys and help with debugging now
shows where that key came from, either a--profile
or theAPOLLO_KEY
env variable. -
rover docs
commands to make viewing documentation easier - EverlastingBugstopper, issue/308 pull/314To make it easier to find and navigate Rover's docs, we added two commands:
rover docs list
to list helpful docs pages androver docs open
to open a
docs page in the browser. -
Better errors and suggestions for invalid variants - EverlastingBugstopper, issue/208 pull/316
Previously, Rover would tell you if you tried accessing an invalid variant,
but couldn't provide any recommendations. This adds recommendations for simple
typos, lists available variants for graphs with small numbers of variants, and
provides a link to view variants in Apollo Studio for graphs with many variants. -
Remove the need to reload terminal after install - EverlastingBugstopper, issue/212 pull/318
Rather than asking users to reload their terminal after install, we do the
extra work of sourcing Rover's env file after install, preventing linux users
from having to do that or reload the terminal themselves. -
Rover automatically checks for updates - JakeDawkins, issue/296 pull/319
Every 24 hours, Rover will automatically check for new releases and let you know.
You can also run therover update check
command to manually check for updates.
If an update is available, Rover warns once per day at most and provides a link
to the docs for update instructions. -
Update installers to be consistent and not require version variables - JakeDawkins, issue/88 pull/324
This provides a consistent experience when installing Rover. When running the
linux install script, you no longer are required to pass aVERSION
, but still
may if you want to download an older version. The windows installer now supports
the same$Env:VERSION
environment variable for similar overrides. By default,
installer scripts will download the version of rover released with that version
of the script. -
Verify paths are all valid utf-8 - EverlastingBugstopper, pull/326
Just to make our code more safe and easier to maintain, we now check and make
sure paths are all valid utf-8 to make sure any non utf-8 paths won't cause unexpected issues.
🐛 Fixes
- Consistently refer to configuration instead of config in error messages - EverlastingBugstopper, pull/306
🛠 Maintenance
-
Move all build-time checks for env variables to util - EverlastingBugstopper, pull/310
Having a bunch of
env!
macros across the codebase is just less beautiful and
maintainable than having them in one utility file. This PR just moves all of those
calls, looking upCARGO_ENV_*
environment variables to a single place. -
Make output tables prettier - EverlastingBugstopper, pull/315
Replaces the characters in table borders with characters that show fewer &
smaller gaps to make tables look a little more polished :) -
Add test to make sure install scripts never change names/paths - EverlastingBugstopper, pull/321
This adds a simple test to make sure we don't move or rename install scripts
on accident in the future, since that would be a major breaking change.
📚 Documentation
-
Instructions for using Rover in CircleCI and GitHub Actions - JakeDawkins, issue/245 pull/329
Some CI providers require a couple of additional steps to get Rover installed
and working. These docs help get Rover working with linux setups in GitHub
Actions and CircleCI.
SHA256 of release binaries for validation:
- Linux: d88f6552395d55de800d6df50cc644b2fefd10ca61b35383d8ab7e6e1be96ba0
- Windows: df0b61a6d6f1b69b6c45caf61d2b5129740a30d36382c35e591d0f85b832d03e
- MacOS: 472eac5c8b57ba9605a92d6f1d8294fcb387a4ad6de533d1bbe0093e51331dd1
v0.0.2
🚀 Features
-
Better logging experience - EverlastingBugstopper, pull/263
When passing
--log debug
, the logs are now pretty printed with their call location.Additionally, progress messages are no longer printed with an
INFO
prefix on every line,
messages are displayed to the user with no mess and no fuss. -
Add useful info to debug logs - EverlastingBugstopper, pull/268
When running Rover with
--log debug
, you can now see which environment variables are being used
and the raw JSON payload returned by the Apollo Studio API. -
Provide a better error message for malformed API Keys - EverlastingBugstopper, issue/215 pull/275
Before, if you passed a malformed API key, the error message was "406: Not Acceptable", since that's
what the Apollo Studio API returned. Rover now provides you with a
much more actionable error message. -
Add support for M1 Macbooks - EverlastingBugstopper, issue/295 pull/297/pull/300
Big Sur allows the new M1 Macbooks to run code compiled for the
x86_64
architecture in emulation
mode, even though the machines themselves have anarm64
architecture. We have updated
ourcurl | sh
installer and ournpm
installer to reflect this, and anybody running Big Sur
on the new M1 machines can now install and use Rover. -
Add a
>
prompt to therover config auth
command - EverlastingBugstopper, issue/279 pull/281It was a bit confusing to be presented with a blank line after running
rover config auth
.
To make it more clear that this is a prompt for an API key, we now print>
at the beginning
of the prompt. -
Add a friendlier message for the case of no config profiles - JakeDawkins, issue/202 pull/303
The new user experience, where there are no config profiles found, was a little cryptic.
To make it easier to understand what the problem is, we added a friendly error message
asking the user to runrover config auth
. -
Output Service title for graph keys in whoami command - lrlna, issue/280 pull/299
rover config whoami
was displayingName
information which was unclear
in the context of this command. Instead ofName
, we are now displaying
Service title
information for graph keys, and omittingName
and
Service Title
for user keys, as the already existing information provides
enough information forUser
.
🐛 Fixes
-
Allow Rover to be used outside the context of a git repository - JakeDawkins, issue/271 pull/282
-
Always use the shorthand ref when generating Git Context - lrlna, pull/255
Rover now computes the shorthand ref and specifies that as the "branch", even
if the specific ref is not necessarily a branch (such as a tag). -
Do not send telemetry events for dev builds - EverlastingBugstopper, pull/258
-
Fix a typo in the README - abernix, pull/269
s/Rover co[ma]{3}nds to interact/Rover commands to interact/
🛠 Maintenance
-
Address latest style suggestions (clippy) - lrlna, pull/267
A new version of clippy
gave us some pointers for more idiomatic code style, and we addressed them! -
Unify terminal text color dependency - EverlastingBugstopper, pull/276
Now we only use
ansi_term
for providing colored text. -
Hide API key printing in debug logs - JakeDawkins, pull/302
We no longer print a user's api key in the
--log debug
logs when
saving a key (fromrover config auth
)/
📚 Documentation
-
Document Git Context - JakeDawkins, pull/262
We added documentation for how Rover provides Git Context to Apollo Studio.
You can read all about it here. -
Fix npx usage documentation - abernix, pull/270
We updated the docs to show that it is necessary to pass
--package @apollo/rover
each time Rover is invoked throughnpx
. -
Update layout of Rover's intro article - StephenBarlow, pull/259
The intro article in Rover's docs were reordered to put the info about the Public preview
towards the bottom of the page, so more relevant information is no longer below the fold.
SHA256 of release binaries for validation:
- Linux: e4c226bb7add65ac455e3354c68fd329d728b8e276fb8959a6d7944fa7d2c2d9
- Windows: 8a446accc9d4922ec0eeb4d001f2f3e42012d4cd9173dec160894a684bfbe9a3
- MacOS: f69436e503996a1ea80f22ed2f048fdb73b29c8faf4413f8b16111121da60898
v0.0.1
[0.0.1] - 2021-02-09
Initial public preview release. Please visit our documentation page for information on usage.
Installation
You can install Rover by running
Linux and MacOS
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.7/installers/binstall/scripts/nix/install.sh | VERSION=v0.0.1-rc.7 sh
Windows
iwr 'https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.7/installers/binstall/scripts/windows/install.ps1' | iex
Alternatively, you can download the binary for your operating system and manually adding its location to your PATH
.
0.0.1
If you're updating from a 0.0.1-rc.7
, here are the things that changed:
whoami
You can now run a rover config whoami
to get more information about about the current Rover profile you are using:
✿ rover config whoami
INFO Checking identity of your API key against the registry...
INFO Key Info:
- Name: Nori
- ID: ChowderOfCats-m30w
- Key Type: GRAPH
check
options
rover graph check
and rover subgraph check
now accept several validation options, including --query-count-threshold
, --query-percentage-threshold
, and --validation-period
:
rover-graph-check 0.0.1
Check for breaking changes in a local graph schema against a graph schema in the Apollo graph registry
USAGE:
rover graph check [OPTIONS] <GRAPH_REF> --schema <schema>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-l, --log <log-level>
[default: debug] [possible values: error, warn, info, debug,
trace]
--profile <profile-name>
Name of configuration profile to use [default: default]
--query-count-threshold <query-count-threshold>
The minimum number of times a query or mutation must have been executed in order to be considered in the
check operation
--query-percentage-threshold <query-percentage-threshold>
Minimum percentage of times a query or mutation must have been executed in the time window, relative to
total request count, for it to be considered in the check. Valid numbers are in the range 0 <= x <= 100
-s, --schema <schema>
The schema file to push Can pass `-` to use stdin instead of a file
--validation-period <validation-period>
Size of the time window with which to validate schema against (i.e "24h" or "1w 2d 5h")
ARGS:
<GRAPH_REF> <NAME>@<VARIANT> of graph in Apollo Studio to validate. @<VARIANT> may be left off, defaulting to
@current
Added
- Add
rover info
command to print user OS information for debugging #235 - Add configurability to
check
commands #225 - Add human readable time to
--validation-period
args forcheck
options #253 - Add Code of Conduct, Contributing.md, Changelog #249, #248
- Add
rover config whoami
command #252
Changed
Fixed
- Hide API key from debug logs #244
Internal
- Added issue templates #234
- all Rover
utils
now live inutils
dir #229 sputnik
to redirect from.workers.dev
instead of.com
for telemetry #241
SHA256 of release binaries for validation:
- Linux: f880c8a25dcb2a3902b3cc7d01a3af5a2fa6de62a1fbb9f0c88c1bceb3b0f365
- Windows: 42937a793100c7c87a8256b199f8f6a87e4d33c715e6b886af7f2b76f31632ac
- MacOS: db70c1f4a1334970e6b294faec9253b2ba5bca9947c9bf9dc1eeb4dc7924360c
v0.0.1-rc.7
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
Installation
You can install Rover by running
Linux and MacOS
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.7/installers/binstall/scripts/nix/install.sh | VERSION=v0.0.1-rc.7 sh
Windows
iwr 'https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.7/installers/binstall/scripts/windows/install.ps1' | iex
Alternatively, you can download the binary for your operating system and manually adding its location to your PATH
.
0.0.1-rc.7
Fixed
GitContext
now reports the long commit hash and has some extra regression tests
SHA256 of release binaries for validation:
- Linux: 161aa4f14a27bdb080aa22ff1c829aedf2a860fc51a20ea697c91c2db90032aa
- Windows: 0d07de50ac33df550cae07c93028ff6680bde4352e6d84ce0f21d28445404c80
- MacOS: 1478b57a66fbd3825b038f5df524b5120a09acfc1afaf7d14b755ec5468a5aec
v0.0.1-rc.6
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
Installation
You can install Rover by running npm install -g @apollo/rover
, or if you'd rather bring in a native binary, you can run the following commands:
Linux and MacOS
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.6/installers/binstall/scripts/nix/install.sh | VERSION=v0.0.1-rc.6 sh
Windows
iwr 'https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.6/installers/binstall/scripts/windows/install.ps1' | iex
Alternatively, you can download the binary for your operating system and manually adding its location to your PATH
.
0.0.1-rc.6
Added
- Some
trace
level logs to our API client
Changed
- Removed newlines after errors
- Removed
GraphQL error:
prefix for errors returned from the Apollo API
Fixed
- The previous release announced support for reporting gitContext to the Apollo API, but unfortunately it didn't quite work! Now it does.
- Rover now correctly reports its version to the Apollo API
SHA256 of release binaries for validation:
- Linux: eb17ced09472994a9c8af584c76ebfb7182233ee5a473c7608eef8e37a70fb06
- Windows: 399f99e6ed3d5c2372367bdd9551a8538ae2e2d91f50f9c57a51c186b896b4f1
- MacOS: 71f1f8afa03b7aa20400a0fa4bbd70e487c7f7b0f85c0ff93910c87fef4b21d2
v0.0.1-rc.5
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
Installation
You can install Rover by running
Linux and MacOS
curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.5/installers/binstall/scripts/nix/install.sh | VERSION=v0.0.1-rc.5 sh
Windows
iwr 'https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.5/installers/binstall/scripts/windows/install.ps1' | iex
Alternatively, you can download the binary for your operating system and manually adding its location to your PATH
.
0.0.1-rc.5
This release primarily introduces rover subgraph list
, allows for git context for push
and check
subcommands, and improves errors returned by Rover.
Git context
Rover now infers information about currently used git branch, remote URL, and current user for push
and check
subcommands. If there is a need to override current git context, you may do so with the following environment variables:
APOLLO_VCS_BRANCH
APOLLO_VCS_COMMIT
APOLLO_VCS_COMMITTER
APOLLO_VCS_REMOTE_URL
rover subgraph list
This adds the ability to view all available subgraphs for a federated graph given a GRAPH_REF
:
rover subgraph check Cats-m30w
Subgraphs:
+----------+----------------------------------------+----------------------------+
| Name | Routing Url | Last Updated |
+----------+----------------------------------------+----------------------------+
| reviews | https://acephei-reviews.herokuapp.com | 2020-10-21 12:23:28 -04:00 |
+----------+----------------------------------------+----------------------------+
| books | https://acephei-books.herokuapp.com | 2020-09-20 13:58:27 -04:00 |
+----------+----------------------------------------+----------------------------+
| accounts | https://acephei-accounts.herokuapp.com | 2020-09-20 12:23:36 -04:00 |
+----------+----------------------------------------+----------------------------+
| products | https://acephei-products.herokuapp.com | 2020-09-20 12:23:28 -04:00 |
+----------+----------------------------------------+----------------------------+
View full details at https://studio.apollographql.com/graph/acephei/service-list
Simplification to rover config
flow
All previous profile
config commands were collapsed into rover config
:
rover-config 0.0.1-rc.5
Configuration profile commands
USAGE:
rover config [OPTIONS] <SUBCOMMAND>
FLAGS:
-h, --help
Prints help information
-V, --version
Prints version information
OPTIONS:
-l, --log <log-level>
[default: debug] [possible values: error, warn, info, debug,
trace]
SUBCOMMANDS:
auth Authenticate a configuration profile with an API token
clear Clear ALL configuration profiles
delete Delete a configuration profile
help Prints this message or the help of the given subcommand(s)
list List all configuration profiles
show View a configuration profile's details
Added
- Add
git
context tocheck
andpush
subcommands #205 - Add
subgraph list
command #185 - Add 'Suggestions' to errors thrown by Rover #186, #204
- Add documentation for troubleshooting,
graph
andsubgraph
commands
Changed
- Reworked all profile commands and collapsed them into
rover config
#203 --service-name
flag is renamed to--name
#201- Changed service name in
subgraph check
from a positional arg to a--name
flag #201 - APOLLO_REGISTRY_URI was changed to APOLLO_REGISTRY_URL for consistency #206
Fixed
- Improvements to Rover error handling #209
- Improvements to 'Introduction' messaging in
graph
andsubgraph
commands #207
Internal
- Improvements to error context #211
- A change to installation script to make sure removing ~/.rover does not break future installs #198
SHA256 of release binaries for validation:
- Linux: 06b11565e93a594787aa6bc1da41bb963cf3d63c3cc2234ca023a7b05a13dd3a
- Windows: a5c197326de98115dfcb3d1d6053a3859b70accf57455914d57ecafaa78667bc
- MacOS: 9f1cf4df463a0320c1f8cd4ee68ef1b21064d393ceb3ab728004c1b05f84c03d
v0.0.1-rc.4
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
This release primarily introduces rover subgraph check
and a --routing-url
option to rover subgraph push
.
Subgraph Check
There are docs written for the usage of rover subgraph check
under docs/source/subgraphs.md#checking-subgraph-changes
Added
Internal
SHA256 of release binaries for validation:
- Linux: 8f3cc6108d6d74034f13cb89c9a1ed38f7a967ae94d8161cf1e49b05aa93ded6
- Windows: 4f6c924221650dd18db71bf3419b251cc53b80d53a1cb469c2fdc441ccc640e7
- MacOS: f4cfbd4224d6a8de95f9811afbc25165e8c977dbb1b9517a54e14c5b753744bc
v0.0.1-rc.1
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
This release primarily introduces rover graph check
, rover subgraph fetch
and allows for Rover to be installed on Windows.
rover graph check
Checks and validates changes to a graph given a schema.
Schema can be passed in via --schema
flag,
rover graph check --schema ./path-to-valid-sdl test@cats
or, alternatively stdin
:
curl http://url-of-valid-sdl.co.uk --silent | rover graph check --schema - test@cats
rover-graph-check 0.0.1-rc.0
Validate changes to a graph
USAGE:
rover graph check [OPTIONS] <GRAPH_REF> --schema <schema>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-l, --log <log-level> [default: debug] [possible values: error, warn, info,
debug, trace]
--profile <profile-name> Name of configuration profile to use [default: default]
-s, --schema <schema> The schema file to push Can pass `-` to use stdin instead of a file
ARGS:
<GRAPH_REF> <NAME>@<VARIANT> of graph in Apollo Studio to validate. @<VARIANT> may be left off, defaulting to
@current
rover subgraph fetch
Fetch a schema for a given graph from Apollo Studio.
rover-subgraph-fetch 0.0.1-rc.0
⬇️ Fetch an implementing service's schema from Apollo Studio
USAGE:
rover subgraph fetch [OPTIONS] <GRAPH_REF> --service-name <service-name>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-l, --log <log-level> [default: debug] [possible values: error, warn,
info, debug, trace]
--profile <profile-name> Name of configuration profile to use [default: default]
--service-name <service-name> Name of implementing service in federated graph to update
ARGS:
<GRAPH_REF> <NAME>@<VARIANT> of graph in Apollo Studio to fetch from. @<VARIANT> may be left off, defaulting
to @current
Install Rover on Windows
You can now install Rover on your Windows machines with:
iwr 'https://raw.githubusercontent.com/apollographql/rover/236dadda93edaa910dbeaa92893b7da2c27e4973/installers/binstall/scripts/windows/install.ps1' | iex
Added
- Windows installer #104
stdin
as SDL input #108- Standardised auth flow with
rover config profile auth
#114 - Introduced
rover subgraph fetch
#117 - Introduced
rover graph check
#145
Fixed
- Standardised
graph_name
input across Rover's commands #95 - Renamed
schem
tograph
andpartial
tosubgraph
#103, #125 - Removed emoji usage from help texts to standardise user experience across OSs #123
- Display change summary on
rover graph push
#112
Internal
- Updated documentation and help texts #105, #96, #91
- Run github workflow tests on
push
#122 - Auto-update Rover's schema #119
SHA256 of release binaries for validation:
- Linux: 4dc60b56a4fba4c8adf97fd871b75ff9b7f0445f76073938bf29f90cc73c998a
- Windows: e375429100ed005700acfd35d9dd96d01329b8786e8481360ea146cad1d76ec2
- MacOS: ead1a085230c7fb7d14f54030a31959e9c05e2dcbb06e83973912ab2be0c03fa
🎁 0.0.1-rc.0
Testing Instructions
This beta release is now out of date. If you previously installed this release, you should reinstall and see what's changed in the latest release.
Disclaimer: Rover is still in an experimental stage and should not be used in production. This release is intended for use by internal teams at Apollo.
Installation
On Mac/Linux you can install Rover by running curl -sSL https://raw.githubusercontent.com/apollographql/rover/v0.0.1-rc.1/installers/binstall/install.sh | VERSION=v0.0.1-rc.1 sh
.
On Windows you can install Rover by running iwr 'https://raw.githubusercontent.com/apollographql/rover/236dadda93edaa910dbeaa92893b7da2c27e4973/installers/binstall/scripts/windows/install.ps1' | iex
.
If you don't want to use our shell script, you can download the binary for your operating system and manually add its location to your PATH
.
Usage
Some initial documentation work has been done, but there's still a lot of work to do!
For now, we're hopeful that recursing through Rover's --help
tree is sufficient. In cases where it is not, or if you run into any issues, please file an issue.
SHA256 of release binaries for validation:
- Linux: 20609dc9e7d434d9d99303c6e5ab97fc9ef1deb09c89a88322ddf96d51bafa7a
- Windows: b1b5cba6adecb78a833b0d55ff5d4d13997d78e9be5b75dc0cb42dba06d5aac6
- MacOS: 3bf3de9b4566134f22fa0387a097078e643a58943ae721235042c97c7519eb60