✨ 🤖 🐶 the new CLI for apollo

docs contain more detailed information that should be your primary reference for all things Rover

Rover

This is the home of Rover, the new CLI for Apollo's suite of GraphQL developer productivity tools.

Note

This README contains just enough info to get you started with Rover. Our docs contain more detailed information that should be your primary reference for all things Rover.

Usage

A few useful Rover commands to interact with your graphs:

  1. Fetch a graph from a federated remote endpoint.
rover graph fetch test@cats
  1. Validate recent changes made to your local graph with rover graph check.
rover graph check --schema=./path-to-valid-sdl test@cats
  1. Publish your local graph to Apollo Studio.
rover graph publish --schema ./path-to-valid-schema test@cats

Command-line options

Rover 0.2.0-beta.1

Rover - Your Graph Companion
Read the getting started guide by running:

    $ rover docs open start

To begin working with Rover and to authenticate with Apollo Studio,
run the following command:

    $ rover config auth

This will prompt you for an API Key that can be generated in Apollo Studio.

The most common commands from there are:

    - rover graph fetch: Fetch a graph schema from the Apollo graph registry
    - rover graph check: Check for breaking changes in a local graph schema against a graph schema in the Apollo graph
registry
    - rover graph publish: Publish an updated graph schema to the Apollo graph registry

You can open the full documentation for Rover by running:

    $ rover docs open

USAGE:
    rover [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -l, --log <log-level>         Specify Rover's log level [possible values: error, warn, info,
                                  debug, trace]
        --output <output-type>    Specify Rover's output type [default: plain]  [possible values: json,
                                  plain]

SUBCOMMANDS:
    config        Configuration profile commands
    docs          Interact with Rover's documentation
    explain       Explain error codes
    graph         Graph API schema commands
    help          Prints this message or the help of the given subcommand(s)
    subgraph      Subgraph schema commands
    supergraph    Supergraph schema commands
    update        Commands related to updating rover

This repo is organized as a cargo workspace, containing several related projects:

  • rover: Apollo's suite of GraphQL developer productivity tools
  • houston: utilities for configuring Rover
  • robot-panic: a fork of rust-cli/human-panic adjusted for Rover
  • rover-client: an HTTP client for making GraphQL requests for Rover
  • sdl-encoder: a crate to encode SDL
  • sputnik: a crate to aid in collection of anonymous data for Rust CLIs
  • timber: Rover's logging formatter

Installation Methods

Linux and MacOS curl | sh installer

To install the latest release of Rover:

curl -sSL https://rover.apollo.dev/nix/latest | sh

To install a specific version of Rover (note the v prefixing the version number):

Note: If you're installing Rover in a CI environment, it's best to target a specific version rather than using the latest URL, since future major breaking changes could affect CI workflows otherwise.

curl -sSL https://rover.apollo.dev/nix/v0.1.9 | sh

You will need curl installed on your system to run the above installation commands. You can get the latest version from the curl downloads page.

Note: rover supergraph compose is currently not available for Alpine Linux. You may track the progress for supporting this command on Alpine in this issue.

Windows PowerShell installer

iwr 'https://rover.apollo.dev/win/latest' | iex

To install a specific version of Rover (note the v prefixing the version number):

Note: If you're installing Rover in a CI environment, it's best to target a specific version rather than using the latest URL, since future major breaking changes could affect CI workflows otherwise.

iwr 'https://rover.apollo.dev/win/v0.1.9' | iex

npm installer

Rover is distributed on npm for easy integration with your JavaScript projects.

devDependency install

If you'd like to install rover as a devDependency in your JavaScript project, you can run npm i --save-dev @apollo/rover. You can then call rover directly in your package.json scripts, or you can run npx rover in your project directory to execute commands.

Manual download and install

If you'd like to call rover from any directory on your machine, you can run npm i -g @apollo/rover.

Note: Unfortunately if you've installed npm without a version manager such as nvm, you may have trouble with global installs. If you encounter an EACCES permission-related error while trying to install globally, DO NOT run the install command with sudo. This support page has information that should help to resolve this issue.

Without curl

You can also download the binary for your operating system and manually add its location to your PATH.

Unsupported architectures

If you don't see your CPU architecture supported as part of our release pipeline, you can build from source with cargo. Clone this repo, and run cargo xtask dist --version v0.1.3. This will compile a released version of Rover for you, and place the binary in your target directory.

git clone https://github.com/apollographql/rover
cargo xtask dist --version v0.1.3

From here you can either place the binary in your PATH manually, or run ./target/release/{optional_target}/rover install.

Contributions

See this page for info about contributing to Rover.

License

This project is licensed under the MIT License (LICENSE or http://opensource.org/licenses/MIT).

Issues

Collection of the latest Issues

DunDun1124

DunDun1124

question ❓
1

federation_version: 2 subgraphs: films: routing_url: https://films.exampleA.com, https://films.exampleB.com schema: file: ./films.graphql

EverlastingBugstopper

EverlastingBugstopper

0

if i run rover readme publish with an API token that only has consumer/observer roles, I get the following:

while this message tells me what i need to know, it's unfortunate that it appears as an exception like this. perhaps something like this would be more appropriate:

I'm not sure what the best way to go about fixing this up is since there is no error data coming from the API for me to handle in a structured way, so I will be consulting the kind folks on team nebula to see if we can straighten this up a bit.

EverlastingBugstopper

EverlastingBugstopper

docs 📝
1

On the left nav for the rover docs, there are standalone pages like install, and then there are pages in subcategories for other commands like graph commands in the "Base commands" section, and subgraph commands in the "Federation commands" section. Separately, there is a "Reference" category with a single page containing all of the error codes that Rover emits.

There are currently 4 top-level subcommand documentation pages: graph, readme, subgraph, and supergraph. We are missing pages for config, explain, help, docs, and update. These pages needn't be long, but there should be something there in order for people to best understand how to use Rover.

I think it might be good to have these subcommands all listed in the reference categories and to remove the top-level distinction between "base" and "federation" commands.

cy

cy

feature 🎉
2

Description

After releasing operation collections in Studio, Nebula team has received requests for rover support of this feature so that operations can be pulled in with scripts and used in integration tests, as part of the build pipeline.

What are the inputs/outputs?

Proposal to add a new command:

Output:

  • version field, as suggested by @abernix, to future proof for possible breaking changes in the future
  • only support JSON output, and not .graphql file because of inability to include headers and variables in that format

Prior art (are there any other tools/products that do this now?)

  • operations are viewable in Studio Explorer
  • GraphVariant.operationCollection field has been added to platform-api to support adding this command
bverhoeven

bverhoeven

feature 🎉
0

Description

I'd like to have an ability to clone/copy an existing (super)graph into a new variant.

We started using subgraphs with per-feature-branches, but would also love to create a feature-specific variant of our schema where the updated subgraph is replaced, but all other subgraphs still use the schema and routing URL of our main staging environment.

Currently, publishing the updated subgraph to a new variant does create a new variant but that variant lacks all the other subgraph. As far as I'm aware the only options to do this are to:

  • Publish each subgraph individually
  • (Ab)use rover to list the subgraphs, download the schemas and republish to the new variant

Example

Say we have our main graph, It has the following subgraphs:

  • orders subgraph, routing to http://orders.staging
  • products subgraph, routing to http://products.staging
  • reviews subgraph, routing to http://reviews.staging

The team behind the reviews subgraph wants to push a new update and see if it still works, without messing with the existing staging environment just yet. They clone the graph variant into a dev-somebranch variant and then have CI publish and deploy the updated version to the new graph. We'll then have a [email protected] graph that looks like this:

  • orders subgraph, , routing to http://orders.staging
  • products subgraph, routing to http://products.staging
  • reviews subgraph, routing to http://reviews.dev-somebranch

This allows for interoperability testing and makes it easier to test with the full set of subgraphs, without directly working with a shared "staging" environment.

Hacky workaround

I've tried to use rover to achieve this, and I've been able to do so in a very hacky manner: Using the rover subgraph list command combined with subgraph fetch and subgraph publish somewhat does what I intend to do here.

Below is a (very!) hacky workaround that outputs the required rover commands to perform this operation:

This works, but as mentioned, feels hacky. It additionally causes a bunch of failed "launches" as subgraphs are added and checked one-by-one. And it's guaranteed to cause issues down the line as rover output is updated.

EverlastingBugstopper

EverlastingBugstopper

0

currently the API returns this error: error: Forbidden: Cannot upload schema directly for federated graph. The model of the service registry is that the graph's schema is computed by composing underlying services. If you have pushed services in error, they can be deleted using the CLI. which is not the worst, it's just a tad inconsistent and still uses outdated "services" terminology.

litiziyang

litiziyang

question ❓
2

I am first time use @apollo/rover I do this "$rover supergraph compose --config ./supergraph.yaml --client-timeout=60" but image

my supergraph config image

it's like my proxy connection timed out of my hosts

Gabkings

Gabkings

2

Error E002

I am having a problem trying to generate a super graph here. Please see the screenshot for more details.

image

ThomasJamesCrawford

ThomasJamesCrawford

feature 🎉
0

Description

We create a new variant of our graph for each unique ephemeral environment we spin up.

We want to be able to cleanup these variants when they're no longer required.

We can delete the variant if we know the exact name, but if we lose track of the possible variants there's no way to list them all out to find ones we no longer need.

Just something like this would be really helpful rover supergraph list <graphname>

output

benweatherman

benweatherman

bug 🐞
0

Description

There's a newline printed to stdout for the supergraph schema that didn't appear in previous versions.

Steps to reproduce

Run rover supergraph compose --config supergraph.yaml 2>/dev/null with any working supergraph config. Notice that there's a newline at the top of the supergraph (this may not show very well in the rendered markdown).

Expected result

I would expect the supergraph to be printed without a newline at the top (it's more appropriate to be part of stderr, along with the Composing supergraph with Federation <version> info).

Actual result

There's a newline printed to stdout

Environment

Investigation

Should this line print to stderr instead of stdout? https://github.com/apollographql/rover/blob/09c703996fd5f1abf28da94f83ac23f57cd38a08/src/command/output.rs#L202

EverlastingBugstopper

EverlastingBugstopper

2

I'm thinking we could take a similar plugin approach that we have with supergraph compose.

auto-download the correct router version that matches the composition version that Rover selects, and put it in ~/.rover/bin/router-v2.0.0. Rover could run the router with a call to execvp or something similar, may want to just use std::process::Command to make sure it works on Windows.

Biggest unanswered thing here is a good config story.

ivanbrennan

ivanbrennan

question ❓
2

Description

I'd like to use rover on NixOS, which precludes installing via the provided install scripts, so I wrote a Nix package for rover -- https://github.com/NixOS/nixpkgs/pull/164986 -- which works as expected.

However, I can't figure out how to include the fed2 plugin in my Nix package, and attempting to install it imperatively fails:

I'm not very familiar with Rust, and was unable to determine why I get the above error, or (more importantly) how to properly include the plugin in my Nix package installation in the first place.

Any help you can provide would be much appreciated.

Tohaker

Tohaker

bug 🐞
3

Description

Following the Federation 2 quickstart guide to the letter, at the local composition step the following error is shown when running the rover CLI on Windows. Note that this issue does not persist when switching to WSL (Ubuntu 20.20).

Steps to reproduce

Follow all the steps here on Windows 10 in either Powershell or CMD

Expected result

The supergraph to be composed

Actual result

Environment

BrynCooke

BrynCooke

feature 🎉
2

Description

Currently Rover uses the following precedence rules for command line args:

  1. Env variables
  2. Command line args
  3. Defaults

However this is rather unusual. Typically the following is used

  1. Command line args
  2. Env variables
  3. Defaults

This way the user does not get unexpected behaviour if they have an environment variable set and they forget about it. The worst case is that users will try multiple different command line args and conclude they have no effect.

EverlastingBugstopper

EverlastingBugstopper

0

we should migrate from chrono to time because it is a more actively maintained project, and there are some security issues.

unfortunately, there is still a security issue in time as outlined by @Geal:

ok so this might require some annoying decisions: https://github.com/time-rs/time/blob/main/src/sys/local_offset_at/unix.rs#L111-L117

// Ensure that the process is single-threaded unless the user has explicitly opted out of this // check. This is to prevent issues with the environment being mutated by a different thread in // the process while execution of this function is taking place, which can cause a segmentation // fault by dereferencing a dangling pointer. // If the num_threads crate is incapable of determining the number of running threads, then // we conservatively return None to avoid a soundness bug.

there is a cfg we can set to avoid this but that will not help rover users: https://github.com/time-rs/time/blob/1dfb2682d9932de6f8d67d05ea5e229549a08db6/src/lib.rs#L72-L79

//! One pseudo-feature flag that is only available to end users is the unsound_local_offset cfg. //! As the name indicates, using the feature is unsound, and may cause unexpected segmentation //! faults. Unlike other flags, this is deliberately //! only available to end users; this is to ensure that a user doesn't have unsound behavior without //! knowing it. To enable this behavior, you must use RUSTFLAGS="--cfg unsound_local_offset" cargo //! build or similar. Note: This flag is not tested anywhere, including in the regular test of //! the powerset of all feature flags. Use at your own risk. Without this flag, any method that //! requires the local offset will return the Err variant.

AFAICT for rover multithreading won't be an issue but still, that fix is unsatisfying

I mentioned that Rover is somewhat multi-threaded but I don't anticipate it being an issue. Regardless, we've decided to wait until a fix for this is released to continue work on this. As soon as that fix happens we should finish the migration that was started in #1021.

sambhavmt

sambhavmt

1

Error E003

I am not providing any header, still getting this while fetching the schema using graph id and variant, and also when trying to publish the same after I used introspect to bring the schema onto local.

lennyburdette

lennyburdette

feature 🎉
6

From a customer:

When using rover supergraph fetch <variant_graph_ref> it fails saying:

The use case is fetching the supergraph schema to use in an Uplink fallback. They need the contract supergraph with all the @inaccessible directives applied.

@jsegaran and @david-castaneda are working on an API change that should make this possible.

EverlastingBugstopper

EverlastingBugstopper

maintenance 🛠️
1

Rover has some helpful types for printing outputs and errors, but they're stored in a different section than the rest of the command code and the giant match statements are difficult to reason about.

to start, i think we should make a trait for all rover commands (ignore my probably incorrect syntax here, we likely need Box or something i'm not sure):

and instead of RoverOutput being an enum, it would also be a trait defined like so:

this would let us simplify our codebase and put all of the relevant printing and json logic next to the command itself rather than tucked away in an ever-growing file.

xzyfer

xzyfer

feature 🎉
0

Description

The --variant flag was removed in https://github.com/apollographql/rover/issues/101 in favour of [email protected] positional argument. Formatted positional arguments are problematic in environments without substitution or templating capabilities i.e. npm/yarn scripts.

Consider the following package.json.

There isn't a viable way for the script caller to select the variant. This either requires wrapping the rover call in another script in order to template the variant or introduce variant specific script entries i.e. schema:check:staging, schema:check:production, etc... The latter quickly gets unwieldy as we add script entries for other rover operations like publish.

Re-introducing the --variant flag resolves this issue by allowing the caller to select the variant.


What about npm_config_*

It's true that npm offers naive templating for scripts that would allow the following

However this is not consistently supported across node package managers, most notably yarn has a 4yr outstanding PR for a comparable feature.

What about passing in the positional argument

The following is (mostly) possible today

This works for a single package but it requires all callers to know to graph ID (something that is largely static) which is owned by n external service i.e. Apollo Studio).

However even this approach breaks down once you enter a monorepo environment. Consider a lerna based monorepo, we would want to do the following

This would execute yarn run schema:check in all monorepo packages. Unless all packages depend on the single graph were no longer able to use positional arguments. The --variant flag solves this since flags are passed on by lerna (and other monorepo tools) and node package managers.

Versions

Find the latest versions by id

v0.7.0 - Jun 09, 2022

🚀 Features

  • Adds readme fetch and readme publish - @cy, #1128, #1141

    Adds support for fetching and publishing Apollo Studio graph variant READMEs with rover readme publish and rover readme fetch commands. Usage for these commands can be found by running rover readme --help and documentation can be found on our docs site.

🐛 Fixes

  • Fix the endpoint rover-client uses to fetch Apollo Studio's GraphQL schema- @EverlastingBugstopper, 1126

    As of v0.6.0, Rover sends all Apollo Studio requests to the new public platform API. When this change was introduced, we changed where we issued our GraphQL requests, but did not update the build step that fetches the schema which could lead to mismatched types. This is now fixed, fields in the public platform API match codegen.

  • Fix typo in the environment variable rover-client uses to fetch Apollo Studio's GraphQL schema - @EverlastingBugstopper, #1125 s/APOLLO_GPAPHQL_SCHEMA_URL/APOLLO_GRAPHQL_SCHEMA_URL

📚 Documentation

  • Schema checks are now free - @StephenBarlow, #1131

    Update the documentation to remove references to schema checks being a paid feature, since they are now free!

  • Update ARCHITECTURE.md - @cy #1129

    Update and clarify a few points in ARCHITECTURE.md.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.6.0 - May 03, 2022

Important: 1 breaking change below, indicated by ❗ BREAKING ❗

❗ BREAKING ❗

  • Use Apollo's Platform API - @pcarrier, #1074

    Rover now uses Apollo's Platform API instead of the old Studio API. The breaking change is that the hostname is now api.apollographql.com where it used to be graphql.api.apollographql.com, you may need to update your firewall rules. Other behavior should remain unchanged.

🐛 Fixes

  • Fixes Input Value Definition block string encoding for descriptions. - @lrlna, #1116 # fixes #1088

    Input values are now multilined when a description is present to allow for a more readable generated SDL.

🛠 Maintenance

  • Removes upper bound on Node engines for npm installer - @EverlastingBugstopper, #1120 fixes #1119

    Previously, Rover required that your node engine was between v14 and v17. We have removed the upper bound on this limit so you can now use Node 18 and any future versions.

  • Adds cargo xtask docs - @EverlastingBugstopper, #1118

    Developers of the Rover project can now run cargo xtask docs to spin up a local netlify server with your local docset. After running the command, you can navigate to http://localhost:8000/rover in your browser and changes you make to ./docs/source/**.md files will be updated automatically on save.

  • Updates dependencies - @renovate-bot, #1117

    node 16.14.2 -> 16.15.0 npm 8.7.0 -> 8.8.0 os_info 3.2 -> 3.3

  • Removes unused dependencies - @EverlastingBugstopper, #1113

  • Separate Studio client code from generalized GraphQL client code - @Geal, #1061

    Introduces the launchpad workspace crate which contains operations not specific to Apollo Studio such as:

    • launching GraphQL queries using reqwest
    • running an introspection query on a graph
    • transforming a JSON SDL to a schema

This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.4 - Apr 26, 2022

🚀 Features

  • Default rover supergraph compose to Federation 2 if a @link directive is found in a subgraph schema - @EverlastingBugstopper, #1097 fixes #1090

    When running rover supergraph compose, if supergraph.yaml refers to a subgraph that contains an @link directive and you haven't set the federation_version key, then Rover will use Federation 2 composition by default.

  • Output Federation version information when running rover supergraph compose - @EverlastingBugstopper, #1102

    When running rover supergraph compose, Rover will print the Federation version number that it is using. You can access this version string programatically by running the command with the --output json argument and accessing the federation_version field.

  • Accept - as valid supergraph.yaml to read config from stdin - @EverlastingBugstopper, #1092 fixes #525

    You can now run commands like cat supergraph.yaml | rover supergraph compose --config - much like you've always been able to do with the --schema argument in other Rover commands.

🐛 Fixes

  • Really fixes v0.5.2/v0.5.3 broken npm installs - @EverlastingBugstopper

    It turns out that it's hard to test changes to npm installers without actually publishing to npm. In order to save burning another patch version I released v0.5.4-rc.0 to ensure that my changes would actually fix things.

  • Hides rover-fed2 from rover --help - @EverlastingBugstopper, #1091 fixes #1085

🛠 Maintenance

  • Address Rust 1.60.0 lints - @EverlastingBugstopper, #1098

  • Updates binary-install to v1.0.0 for the npm installer - @EverlastingBugstopper, #1099

📚 Documentation

  • Fixes some broken Federation 2 links - @StephenBarlow, #1084

  • Documents dynamic composition versions - @EverlastingBugstopper, #1087


note: the release notes for 0.5.2 have been copied here because 0.5.2 and 0.5.3 were both broken on npm


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.4-rc.0 - Apr 26, 2022

This was a test release. Please refer to v0.5.4.

This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.3 - Apr 26, 2022

Sorry! This release did not work on npm. Please refer to v0.5.4. You can still download these binaries, they are functionally equivalent to v0.5.2 and v0.5.4.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.2 - Apr 26, 2022

Sorry! This release did not work on npm. Please refer to v0.5.4. You can still download these binaries, they are functionally equivalent to v0.5.3 and v0.5.4.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.1 - Apr 11, 2022

🐛 Fixes

  • Return a hard error in CI when the ELv2 license is not accepted instead of hanging for eternity - @EverlastingBugstopper, #1082 fixes #1081

    If you ran rover supergraph compose with federation_version: 2 in CI - it would prompt you to accept the ELv2 license and hang waiting for the input for eternity. This is no longer the case and you will get a helpful error message detailing exactly what you need to do to never see the error again. For more details on the license, see our FAQ.

  • Removes extraneous debug statement - @EverlastingBugstopper, #1079

    In my rush this morning I missed the removal of an eprintln statement. It's gone now.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.0 - Apr 11, 2022

Important: X breaking changes below, indicated by ❗ BREAKING ❗

❗ BREAKING ❗

  • rover-fed2 has been deprecated - @EverlastingBugstopper, #1058

    rover fed2 supergraph compose has been deprecated. You should instead set federation_version: 2 in your supergraph.yaml to use Federation 2 with the rover supergraph compose command.

🚀 Features

  • rover supergraph compose optionally updates automatically - @EverlastingBugstopper, #1058 fixes #2046

    When running rover supergraph compose, Rover will automatically download the correct version of composition to use. In your supergraph.yaml files, you can specify federation_version: 1 or federation_version: 2 to always get the latest updates. You can pass the --skip-update flag to skip checking for an update. You can also specify an exact version if you'd like to pin your federation version, like so: federation_version: =2.0.0.

    Additionally, you can run rover install --plugin [email protected] or rover install --plugin [email protected] to install a plugin ahead of time, which may be helpful in CI. For Federation 2, you'll have to accept the ELv2 license one time per machine. You likely want to set APOLLO_ELV2_LICENSE=accept in CI if you are using Federation 2.

  • Adds --insecure-unmask-key to rover config whoami - @EverlastingBugstopper, #1043 fixes #1023

    Previously, running rover config whoami would output your entire API key to the terminal. This is not the documented behavior, and it is insecure because someone could be sharing their screen while trying to debug and accidentally leak their API key.

    Now, rover config whoami will mask your API key when it prints to the terminal. You can override this behavior by passing the --insecure-unmask-key flag.

  • Retry on timeouts and connection errors - @ptondereau, #1014 fixes #790

    Rover will now automatically retry HTTP requests that fail due to timeouts or initial connection errors.

  • Define an HTTP agent for non-studio requests - @ptondereau, #1075 fixes #961

    Rover now sends a User-Agent header along with all requests, not just requests to Apollo Studio.

  • Adds support for HTTP(S) proxies in npm installer - @farawaysouthwest, #1067 fixes #899

    You can now install Rover from npm if you are behind a proxy.

🐛 Fixes

  • Fixed a dead link in ARCHITECTURE.md - @ptondereau, #1053

🛠 Maintenance

  • Simplify rover subgraph fetch query - @EverlastingBugstopper, #1056 fixes #992

    rover subgraph fetch now uses a much more efficient query that only requests a single subgraph at a time rather than all of them. Yay GraphQL!

  • Upgrades apollo-encoder - @bnjjj, #1017 fixes #1010

📚 Documentation

  • Set up new docs infrastructure - @trevorblades, #1051, #1052

    @trevorblades has done an awesome job setting up new docs for Apollo, including Rover! Check out the shiny new repo.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.0-rc.1 - Apr 05, 2022

🐛 Fixes

  • Fix npm installer - @EverlastingBugstopper

see 0.5.0-rc.0 for the full release notes.

This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.5.0-rc.0 - Apr 05, 2022

Important: X breaking changes below, indicated by ❗ BREAKING ❗

❗ BREAKING ❗

  • rover-fed2 has been deprecated - @EverlastingBugstopper, #1058

    rover fed2 supergraph compose has been deprecated. You should instead set federation_version: 2 in your supergraph.yaml to use Federation 2 with the rover supergraph compose command.

🚀 Features

  • rover supergraph compose optionally updates automatically - @EverlastingBugstopper, #1058 fixes #2046

    When running rover supergraph compose, Rover will automatically download the correct version of composition to use. When you first install Rover, it will automatically download the latest composition function for Federation 1 and Federation 2. In your supergraph.yaml files, you can specify federation_version: 1 or federation_version: 2 to always get the latest updates. You can pass the --skip-update flag to skip checking for an update. You can also specify an exact version if you'd like to pin your composition function, like so: federation_version: =2.0.0-preview.9.

    Additionally, you can run rover install --plugin [email protected] or rover install --plugin [email protected] to install a plugin ahead of time, which may be helpful in CI.

  • Adds --insecure-unmask-key to rover config whoami - @EverlastingBugstopper, #1043 fixes #1023

    Previously, running rover config whoami would output your entire API key to the terminal. This is not the documented behavior, and it is insecure because someone could be sharing their screen while trying to debug and accidentally leak their API key.

    Now, rover config whoami will mask your API key when it prints to the terminal. You can override this behavior by passing the --insecure-unmask-key flag.

  • Retry on timeouts and connection errors - @ptondereau, #1014 fixes #790

    Rover will now automatically retry HTTP requests that fail due to timeouts or initial connection errors.

🐛 Fixes

  • Fixed a dead link in ARCHITECTURE.md - @ptondereau, #1053

🛠 Maintenance

  • Simplify rover subgraph fetch query - @EverlastingBugstopper, #1056 fixes #992

    rover subgraph fetch now uses a much more efficient query that only requests a single subgraph at a time rather than all of them. Yay GraphQL!

📚 Documentation

  • Set up new docs infrastructure - @trevorblades, #1051, #1052

    @trevorblades has done an awesome job setting up new docs for Apollo, including Rover! Check out the shiny new repo.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.8 - Mar 15, 2022

🐛 Fixes

  • Properly pin harmonizer versions - @EverlastingBugstopper, #1039

    0.4.7 accidentally released [email protected] instead of preview.7 because of semver. Versions are now pinned properly.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.7 - Mar 15, 2022

🛠 Maintenance


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.6 - Mar 14, 2022

🐛 Maintenance


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.5 - Mar 11, 2022

🐛 Fixes

  • Fixes "output from rover-fed2 was malformed" serialization errors - @EverlastingBugstopper, #1030

    Federation 2 was broken in 0.4.4, every rover fed2 supergraph compose command would return "output from rover-fed2 was malformed" which was not helpful.

    rover fed2 supergraph compose now uses [email protected]/@apollo/[email protected] under the hood and the data passed between rover and rover-fed2 is matched up properly. Happy federating!


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.4 - Mar 09, 2022

🛠 Maintenance

  • Updates the version of the underlying composition packages - @EverlastingBugstopper, #1025

    rover supergraph compose now uses [email protected]/@apollo/[email protected] and rover fed2 supergraph compose now uses [email protected]/@apollo/[email protected].

  • Updates README badges - @EverlastingBugstopper, #1016

    Replaced the stability: experimental badge with a badge showing Rover's total download count, and replaced the outdated GitHub workflow badge with the appropriate CircleCI badge.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.3 - Feb 14, 2022

🐛 Fixes

  • Fix npm installer logic for detecting glibc compatibility - @EverlastingBugstopper, #1006 fixes #1004

    Our npm installer had a dependency that updated to v2.0 which included some breaking changes. These changes made our npm installer always return false when checking if the operating system has an appropriate version of glibc installed (in order to download the version of Rover with supergraph compose functionality). We have now moved to the appropriate API and installs of v0.4.3 should work as expected.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.2 - Feb 11, 2022

🚀 Features

  • Adds launch URL feedback to rover subgraph publish - @Y-Guo, #989

    If a rover subgraph publish invocation kicks off a launch, it will now output the URL associated with the launch so you can go right to it in Studio.

  • Improve messaging for rover subgraph check - @david-castaneda, #980

    In the case where the API schema does not change after a subgraph check but the core schema was modified, you are now notified as such rather than being displayed a confusing "there were no changes detected" message.

🐛 Fixes

  • Omit Float scalars from introspection result - @lrlna, #988 fixes #985

    Since Float is a built-in GraphQL scalar type, it is no longer included in Rover's introspection results.

  • Fix configuration error messages when there are no profiles - @EverlastingBugstopper, #995 fixes #783

    Rover had a hard time detecting when there were no configured profiles, so it never actually emitted error E020. Now it does, and we also get some performance improvements by only parsing environment variables on startup rather than on every time they are needed.

  • No longer panic when printing large output - @EverlastingBugstopper, #955 fixes #842

    Migrate away from the println and eprintln macros that can cause panics from time to time and instead use calm_io to gracefully handle output.

  • Lowers the maximum required glibc version from 2.18 to 2.17 - @EverlastingBugstopper, #990 fixes #991

    We build Rover in Docker with the centos:7 base image, which has glibc v2.17 installed. This means we can lower our installer requirements to 2.17, allowing folks on older machines like centos to install Rover. Thanks to @theJC for the report and help with testing!

  • Removes unused --profile argument from rover subgraph introspect - @EverlastingBugstopper, #950 fixes #948

🛠 Maintenance

  • Use apollo-encoder in rover-client - @lrlna, #939

    sdl-encoder has been replaced with the official apollo-encoder from the apollo-rs ecosystem.

  • Add PR template - @EverlastingBugstopper, #488

    Now folks who are kind enough to contribute pull requests to Rover's repository will have a helpful template to fill out.

  • Fix mechanism for building old versions of Rover - @EverlastingBugstopper, #973 fixes #967

    If a build is executed via cargo xtask dist --version vx.x.x, it will now actually download the schema it needs from the GitHub release artifacts page in order to build for the exact types that were built at that tagged version.

  • Allow Rover to be installed alongside Node.js v17 - @EverlastingBugstopper, #999 fixes #993

  • Run plugin tests and lints in xtask - @EverlastingBugstopper, #977 fixes #909

  • Adds new unused input type to check mutations - @EverlastingBugstopper, #969 fixes #967

    Update the inputs to our check mutations to always send null for the excludedOperationNames field.

📚 Documentation

  • Add docs for rover supergraph fetch - @StephenBarlow, #971 fixes #952

  • Miscellaneous documentation polish - @StephenBarlow, #965, #963


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.1 - Nov 18, 2021

🚀 Features

  • Track WSL as a separate operating system from Linux - @ptondereau, #921 fixes #511

🐛 Fixes

  • Properly indent multiline field comments in introspection output - @lrlna, #919 fixes #884

  • Properly encode string values with single quotes instead of always using triple quotes - @lrlna, #930

🛠 Maintenance

  • Updates rover supergraph compose to use @apollo/[email protected] - @EverlastingBugstopper, #929 fixes #924

    This adds support for users of v16 of the graphql library in addition to fixing a bug in directive merging logic.

  • Expand valid node runtime range to >=14 <17 for npm installs - @EverlastingBugstopper #900 fixes #912

📚 Documentation

  • Miscellaneous copy edits - @StephenBarlow, #923

This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.4.0 - Nov 03, 2021

🚀 Features

  • Federation 2 Support - EverlastingBugstopper, pull/887

    The alpha version of Federation 2 has been released!

    In Rover, you can use the Federation 2 composition model by running rover fed2 supergraph compose --config <supergraph.yaml> after installing the rover-fed2 binary.. You must install rover-fed2 before you can run rover fed2 supergraph compose, and they must be the same version in order to be compatible with each other.

  • Graph lifecycle management - EverlastingBugstopper, issue/722 pull/861

    Rover now supports the rover graph delete command, which will delete all subgraphs in a federated variant, or delete the schema for a non-federated variant.

    There is also new documentation on how rover graph publish and rover subgraph publish create new variants.

    Additionally, you no longer need to pass --convert to subgraph publish when publishing a subgraph to a new variant, though you will still need it when converting a non-federated variant to a federated variant.

  • Fetch the subgraph's routing_url from the graph registry if it isn't specified in a supergraph.yaml file - EverlastingBugstopper, pull/873

    Now, whenever routing_url is not specified for a subgraph in supergraph.yaml and the source is a graphref (which fetches a subgraph from the graph registry), the composed supergraph will use the routing URL from the graph registry for that subgraph instead of an empty string.

🐛 Fixes

  • Output enum descriptions in introspection results - lrlna, issue/878 pull/879

    Now, any introspection result that contains descriptions for enums will include them in the output.

  • Output directive arguments in introspection results - lrlna, pull/858

    Now, any introspection results that contain directive arguments will include them in the output.

🛠 Maintenance

  • Refactor HTTP client configuration - ptondereau, issue/844 pull/890

    When Rover first introduced options to configure the HTTP client, there was a function that took configuration arguments, and returned a client. This has now been refactored to use a more idiomatic builder approach. Thanks @ptondereau!

  • Updates workspace to the 2021 Rust edition - EverlastingBugstopper, pull/886

📚 Documentation


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.3.0 - Sep 24, 2021

Important: 1 breaking change below, indicated by ❗ BREAKING ❗

❗ BREAKING ❗

  • rover supergraph compose uses a newer composition function that is incompatible with older versions of @apollo/gateway - EverlastingBugstopper, issue/801 pull/832

    The rover supergraph compose command produces a supergraph schema by using composition functions from the @apollo/federation package. Because that library is still in pre-1.0 releases (as are Rover and Apollo Gateway), this update to Rover means rover supergraph compose will create a supergraph schema with new functionality. In turn, this requires that you update your @apollo/gateway version to >= v0.39.x.

🚀 Features

  • Adds options to bypass TLS validation - EverlastingBugstopper, issue/720 pull/837

    In some configurations, often on internal networks, you might need Rover to communicate over encrypted channels (e.g., HTTPS) but avoid the more stringent digital certificate verifications that validate hostnames. You might even need to bypass the digital certificate validation entirely. This is generally not recommended and considered to be much less secure but for cases where it's necessary, but now there are two flags you can use to configure how Rover validates HTTPS requests:

    • The --insecure-accept-invalid-hostnames flag disables hostname validation. If hostname verification is not used, any valid certificate for any site is trusted for use from any other. This introduces a significant vulnerability to person-in-the-middle attacks.

    • The --insecure-accept-invalid-certs flag disables certificate validation. If invalid certificates are trusted, any certificate for any site is trusted for use. This includes expired certificates. This introduces significant vulnerabilities, and should only be used as a last resort.

  • Adds option to increase rover's request timeout - EverlastingBugstopper, issue/792 pull/838

    By default, Rover times out requests to the Apollo Studio API and your graph endpoints after 30 seconds. Now, if you're executing a command that might take longer than 30 seconds to process, you can increase this timeout with the --client-timeout option like so:

🛠 Maintenance

  • Simplify error formatting - EverlastingBugstopper, pull/845

    Now, Rover always indents the suggestion by 8 spaces instead of determining its length based on the length of the error descriptor, and the underlying cause of request errors will only be printed once.

📚 Documentation

  • Clarify --output json support in migration guide, and provide an example jq script - EverlastingBugstopper, issue/839 pull/840

    The Apollo CLI migration guide now mentions Rover's support for --output json, and our --output json docs now link to an example bash script for converting a check response to markdown.


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.2.1 - Sep 20, 2021

🐛 Fixes

  • Properly swallow unparseable git remotes - EverlastingBugstopper, issue/670 pull/760

    In v0.2.0, we fixed a crash that occurred for users with non-standard git remotes. While the crash itself no longer occurred, the crash report itself was still generated - this is no longer the case.

🛠 Maintenance

📚 Documentation


This release was automatically created by CircleCI.

If you would like to verify that the binary you have downloaded was built from the source code in this repository, you can compute a checksum of the zipped tarball and compare it to the checksums that are included as release artifacts.

Binaries built for MacOS are signed, notarized, and automatically verified with Gatekeeper.

v0.2.0 - Aug 23, 2021

🚀 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 than x86_64

🛠 Maintenance

📚 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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.2.0-beta.1 - Aug 05, 2021

🐛 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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.10 - Aug 05, 2021

🐛 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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.2.0-beta.0 - Jul 26, 2021

🚀 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 level json_version key, and make sure to update your scripts when that version is not what you expect (the first version is 1.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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.9 - Jul 22, 2021

🚀 Features

  • Updates @tag/@inaccessible composition algorithm in rover 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
  • rover subgraph publish and rover subgraph delete now acknowledges operations with no composition errors. - EverlastingBugstopper, issue/632 pull/685

    Previously, 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 code 0 even if there were failed tests. We run tests through our own custom xtask, so we've added a wrapper around cargo 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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.8 - Jul 08, 2021

🚀 Features

  • Adds preview support for @tag and @inaccessible directives - EverlastingBugstopper, pull/631

    Preview support for composing subgraphs with @tag and/or @inaccessible core features using rover 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


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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.7 - Jun 29, 2021

🚀 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

📚 Documentation


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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.6 - Jun 08, 2021

🐛 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/586

    Once 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 of stderr due to a bug in an upstream dependency. This bug has now been fixed, and update messages are now properly routed to stderr.

📚 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/585

    Fixes an instance of subgraph push to be subgraph 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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

v0.1.5 - May 27, 2021

🐛 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 an apollo-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:

GNU Linux

Manual Verification:

MUSL Linux

Manual Verification:

Windows

Manual Verification:

Information - Updated Jun 22, 2022

Stars: 297
Forks: 36
Issues: 102

rust-clipboard is a cross-platform library for getting and setting the contents of the OS-level clipboard

It has been tested on Windows, Mac OSX, GNU/Linux, and FreeBSD

rust-clipboard is a cross-platform library for getting and setting the contents of the OS-level clipboard

EventStoreDB Rust Client

EventStoreDB rust gRPC gRPC Client

EventStoreDB Rust Client

Rust CLI template

A quick and dirty CLI boilerplate template for Rust

Rust CLI template

Roctogen: a rust client library for the GitHub v3 API

This client API is generated from the Isahc HTTP client

Roctogen: a rust client library for the GitHub v3 API

Rust CLI Template

Template for creating Rust-based CLI tools

Rust CLI Template

Pure Rust client for YubiHSM 2 devices from Yubico

YubiHSM 2 devices from Documentation

Pure Rust client for YubiHSM 2 devices from Yubico

Google Cloud Rust Client

This repository contains Google Cloud Platform services

Google Cloud Rust Client

Parsec Rust Client

When using the JWT-SVID authentication method, the client will expect the SPIFFE_ENDPOINT_SOCKET environment variable to contain the path of the Workload API endpoint

Parsec Rust Client

A Rust client for connecting to OmniSciDB via its RPC protocol of Thrift

OmniSciDB via its RPC protocol of Cargo, using cargo build

A Rust client for connecting to OmniSciDB via its RPC protocol of Thrift

Cardano Rust CLI

com/clemenshorn/cardano-rust-cli

Cardano Rust CLI

Godot Rust CLI is an easy to incorporate Rust modules into your Godot project

Also keep in mind that the main branch will usually be ahead of the version on GitHub repo

Godot Rust CLI is an easy to incorporate Rust modules into your Godot project
Facebook Instagram Twitter GitHub Dribbble
Privacy