Skip to content

Releases: apollographql/rover

v0.0.3

09 Mar 17:36
9a471c0
Compare
Choose a tag to compare

🚀 Features

  • ❗ BREAKING ❗ Squash config show functionality into config whoami - EverlastingBugstopper, issue/274 pull/323

    Since the only thing that rover config show did was show the saved api key,
    it made sense to squash that functionality into the whoami 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/307

    The whoami command, which is used to verify api keys and help with debugging now
    shows where that key came from, either a --profile or the APOLLO_KEY env variable.

  • rover docs commands to make viewing documentation easier - EverlastingBugstopper, issue/308 pull/314

    To make it easier to find and navigate Rover's docs, we added two commands:
    rover docs list to list helpful docs pages and rover 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 the rover 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 a VERSION, 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

🛠 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 up CARGO_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

23 Feb 15:43
ab05294
Compare
Choose a tag to compare

🚀 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 an arm64 architecture. We have updated
    our curl | sh installer and our npm installer to reflect this, and anybody running Big Sur
    on the new M1 machines can now install and use Rover.

  • Add a > prompt to the rover config auth command - EverlastingBugstopper, issue/279 pull/281

    It 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 run rover config auth.

  • Output Service title for graph keys in whoami command - lrlna, issue/280 pull/299

    rover config whoami was displaying Name information which was unclear
    in the context of this command. Instead of Name, we are now displaying
    Service title information for graph keys, and omitting Name and
    Service Title for user keys, as the already existing information provides
    enough information for User.

🐛 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 (from rover 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 through npx.

  • 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

09 Feb 16:36
Compare
Choose a tag to compare

[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 for check options #253
  • Add Code of Conduct, Contributing.md, Changelog #249, #248
  • Add rover config whoami command #252

Changed

  • Public documentation for initial public release #240
  • Updates to README #243

Fixed

  • Hide API key from debug logs #244

Internal

  • Added issue templates #234
  • all Rover utils now live in utils 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

04 Feb 20:28
8ad14c2
Compare
Choose a tag to compare
v0.0.1-rc.7 Pre-release
Pre-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

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

03 Feb 19:09
211cfac
Compare
Choose a tag to compare
v0.0.1-rc.6 Pre-release
Pre-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

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

01 Feb 18:30
665b28e
Compare
Choose a tag to compare
v0.0.1-rc.5 Pre-release
Pre-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

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 to check and push subcommands #205
  • Add subgraph list command #185
  • Add 'Suggestions' to errors thrown by Rover #186, #204
  • Add documentation for troubleshooting, graph and subgraph 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 and subgraph 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

13 Jan 17:46
49fc836
Compare
Choose a tag to compare
v0.0.1-rc.4 Pre-release
Pre-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.

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

  • subgraph check command #110
  • Documentation #160

Internal


SHA256 of release binaries for validation:

  • Linux: 8f3cc6108d6d74034f13cb89c9a1ed38f7a967ae94d8161cf1e49b05aa93ded6
  • Windows: 4f6c924221650dd18db71bf3419b251cc53b80d53a1cb469c2fdc441ccc640e7
  • MacOS: f4cfbd4224d6a8de95f9811afbc25165e8c977dbb1b9517a54e14c5b753744bc

v0.0.1-rc.1

24 Dec 16:42
654e44b
Compare
Choose a tag to compare
v0.0.1-rc.1 Pre-release
Pre-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.


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 to graph and partial to subgraph #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

19 Nov 21:05
980d2ff
Compare
Choose a tag to compare
🎁 0.0.1-rc.0 Pre-release
Pre-release

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