Releases: apollographql/rover
v0.11.0
π Features
-
Manage contract configuration - @sachindshinde, #1475 fixes #1421
Rover now includes two commands for creating, modifying, and reading contracts:
rover contract publish
androver contract describe
. Further documentation can be found here. -
Easier file output with new
--output
argument - @gocamille, #1413 fixes #1212This change adds the new option,
--format
, to allow users to define the format type for messages printed tostdout
(either by passingplain
orjson
as an argument to--format
). This replaces the use of--output
for defining format types. The--output
option will be available to define the output file type instead, following Command Line Interface Guidelines for file outputs. This is an additive, non-breaking change and using the--output
option will continue to be valid. Further documentation can be found here. -
Adds
--router-config
torover dev
- @EverlastingBugstopper, #1446 fixes #1373, #1345, and #1468The new
--router-config
argument forrover dev
allows you to pass a router configuration file on startup that can configure settings such as header propagaion and CORS policies. Further documentation can be found here. -
Auto-update router versions in
rover dev
- @EverlastingBugstopper, #1432rover dev
will automatically use the version of the router specified in this plugin file instead of a hard coded version.
π Maintenance
-
Better error and help text for ELv2 license argument - @DoumanAsh, #1456 fixes #1455
The help text for the
--elv2-license
argument now includes the expected value for the argument, in addition to the error message returned when the argument is needed but not passed. -
Updates the Ariadne template URL - @patrick91, #1439
-
Updates
./examples/supergraph-demo
to@apollo/server
v4, and removes./examples/dev
- @EverlastingBugsttopper, #1442 fixes #1440 and #1441 -
Updates dependencies - @EverlastingBugstopper, #1481, #1450
apollo-parser
0.3 -> 0.4
base64
0.13 -> 0.21
git2
0.15 -> 0.16
graphql_client
0.11.0 -> 0.12
serial_test
0.9 -> 1.0
os_info
3.4 -> 3.5
os_type
2.4 -> 2.6
termcolor
1.1 -> 1.2
tokio
1.21 -> 1.24
π 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.11.0-rc.2
-
This release includes some changes to
rover dev
:- There is now a
--router-config <ROUTER_YAML_PATH>
argument that you can pass to specify a yaml configuration file to start the router with. This file is reloaded when it is changed. rover dev
will now intelligently select a version of the router and composition to use based on the versions in./latest_plugin_versions.json
-n
is now an alias for--name
- There is now a
-
There are two new commands:
rover contract publish
androver contract describe
. Docs on these commands can be found here. -
The
--output
argument has been renamed to--format
and should be used for specifying JSON output, and--output
should be used for writing Rover's command output to a file.
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.11.0-rc.1
This release includes some changes to rover dev
.
- There is now a
--router-config <ROUTER_YAML_PATH>
argument that you can pass to specify a yaml configuration file to start the router with. This file is reloaded when it is changed. rover dev
will now intelligently select a version of the router and composition to use based on the versions in./latest_plugin_versions.json
-n
is now an alias for--name
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.11.0-rc.0
This release includes some changes to rover dev
.
- There is now a
--router-config <ROUTER_YAML_PATH>
argument that you can pass to specify a yaml configuration file to start the router with. This file will not be reloaded when it is changed (which is why this is a pre-release and not a stable release). rover dev
will now intelligently select a version of the router and composition to use based on the versions in./latest_plugin_versions.json
-n
is now an alias for--name
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.10.0
Important: 1 potentially breaking change below, indicated by β BREAKING β
β BREAKING β
-
Fix implementation of
--header
argument - @EverlastingBugstopper, #1369 fixes #1365This change tightens up usage of the
--header
argument used forintrospect
commands by disallowing previously valid (but undocumented) usage like this:--header "Header-1: value" "Header-2: value"
. After this change, you must conform to what we have in the documentation, which indicates separate instances of the--header
argument for each header, like so:--header "Header-1: value" --header "Header-2: value"
.
π Features
-
Provide prebuilt binaries for ARM devices - @EverlastingBugstopper, #1356 fixes #582
As of this release,
rover.apollo.dev
delivers prebuilt binaries from our GitHub release for ARM devices. Most notably this means that Docker on M1 devices should work out of the box. You should be able to replace any custom builds in your tooling pipeline with a call to the official curl installer. -
Report downstream check task results - @sachindshinde, #1385
When running
rover subgraph check
commands, if the proposed schema would cause downstream failures (i.e. with contracts), those failures are now reported in the check response. -
Faster
rover supergraph compose
- @EverlastingBugstopper, #1392 fixes #992Rover now resolves all subgraph schemas in parallel when running
rover supergraph compose
on asupergraph.yaml
file. This should improve the speed to compose large supergraphs significantly. This change also drastically improves error handling by reporting all issues with resolving subgraph schemas (and informing you which schema(s) failed to resolve) rather than exiting on the first failed schema resolution. -
Add
--polling-interval
torover dev
- @patrick91, #1377 fixes #1221You can now set
--polling-interval
when runningrover dev
to change the frequency of introspection poll requests for subgraphs that don't provide the schema from the file system with the--schema
argument. -
Adds
--skip-update-check
to skip the once-per-day update check - @Tsing, #1396 fixes #1394Once per day, Rover checks if there is a new version available for update and notifies the user if there is. There is now a flag you can pass to disable this check:
--skip-update-check
. -
Respect the
NO_COLOR
environment variable - @chnn, #1360rover
will not use color in any output when executed with theNO_COLOR
environment variable set totrue
.
π Maintenance
-
Updates from clap v3 to clap v4 - @EverlastingBugstopper, #1404 fixes #1400
This release updated the command line argument parsing library to major version 4. There should be no noticeable compatibility issues with this update, only lighter binaries. The look and feel of the main
rover --help
output has changed to a neutral color palette along with this change. -
Updates Rust to 1.65.0 - @EverlastingBugstopper, #1399
-
Updates node dev-dependencies - @renovate, #1204 and zs#1398
-
Remove dependency on the
saucer
crate - @EverlastingBugstopper, #1402 -
Updates
introspector-gadget
to 0.2.0 - @EverlastingBugstopper, #1386 -
Only cache dependencies in CI, not whole
/target
- @EverlastingBugstopper, #1387 -
Use
engine@main
instead ofengine@current
to fetch the API schema - @EverlastingBugstopper, #1368 -
Use
lychee
as a link checker instead of npm - @ptondereau, #1328 fixes #1306We now use a Rust-based link checker to check the links in the Rover repository instead of a node-based link checker (that was much more flaky).
-
Describe latest federation versions in
./latest_plugin_versions.json
- @EverlastingBugstopper, #1363When you run
rover supergraph compose
, the latest version of composition is automatically downloaded to your machine, these latest version numbers are now stored in./latest_plugin_versions.json
in the Rover repo. -
Rename
apollo-
headers toapollographql-
headers - @jsegaran, #1411
π Documentation
-
Update studio algolia key to graphos - @trevorblades, #1384
-
Fix some broken links - @StephenBarlow, #1376
-
Fix a typo in the migration guide instructing the use of
check
instead ofpublish
- @EverlastingBugstopper, #1364 fixes #1361
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.9.2-rc.1
Fixes an installation bug for ARM 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.9.2-rc.0
This release is essentially the same as v0.9.1
, except for a few things:
- This release bumps the router used in
rover dev
tov1.1.0
by default. - The installation endpoints for this release will deliver pre-built binaries to unix ARM devices. This enables the following:
- You can now run
rover
without emulation on your M1/M2 machines. However, thesupergraph
androuter
plugins will still be emulated as we cannot yet cross-compile them, and CircleCI does not provide ARM-enabled MacOS runners. - You can now run
rover
in Docker containers on M1/M2 devices as well instead of needing to build it from source.
- You can now run
You can try this release out by running curl -sSL https://rover.apollo.dev/nix/v0.9.2-rc.0 | sh
on Unix devices, and iwr https://rover.apollo.dev/win/v0.9.2-rc.0 | iex
on Windows devices.
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.9.1
π Features
-
Add templates for TypeScript, Go, Kotlin, and Java - @dbanty, #1347
The
rover template
commands now include four more languages.
π Fixes
-
Properly report errors when the first
rover dev
process starts up - @EverlastingBugstopper, #1342If something went wrong while starting the first
rover dev
process, it would attempt to start an attached process, which would fail with an inscrutablethe main rover dev session is no longer active
error message. Now, Rover properly reports issues with starting up the firstrover dev
session. -
Properly report plugin installation errors on
rover dev
startup - @EverlastingBugstopper, #1357If a plugin failed to install when starting
rover dev
, the error wouldn't be reported properly. Now, if something goes wrong, the error message will be printed properly. -
Replace some misleading error suggestions regarding ports with
rover dev
- @EverlastingBugstopper, #1340Some errors suggested retrying the
rover dev
command with a different--port
argument, which doesn't exist. In these cases,rover dev
will suggest that you specify a different--supergraph-port
argument instead. -
Don't exclude certain git remotes from
GitContext
- @EverlastingBugstopper, #1350 fixes #1349In v0.8.2, we started normalizing git remotes for anonymized telemetry. Unfortunately we started excluding git remotes that were not one of BitBucket, GitLab, or GitHub. We now record all of these properly.
π Maintenance
-
Fix typo in
rover subgraph publish
output - @EverlastingBugstopper, #1358 fixes #1337Instead of saying "Monitor your schema delivery progresson studio",
rover subgraph publish
outputs "You can monitor this launch in Apollo Studio". -
Improve caching in CI - @EverlastingBugstopper, #1351 and #1352
In CI builds, we now cache
/target
and~/.cargo
, instead of just/target
. -
Specify all dependencies in root
Cargo.toml
- @EverlastingBugstopper, #1344All of Rover's dependencies can now be viewed and updated in the root
Cargo.toml
, rather than needing to hunt around the workspace to update crates. -
Updates dependencies - @EverlastingBugstopper, #1346
- assert_cmd 1 -> 2
- git2 0.14 -> 0.15
- online 3.0.1 -> 4.0.0
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.9.0
π Features
-
rover template
command suite - @dbanty, @michael-watson, @EverlastingBugstopper, #1287Two new commands have made their way to Rover:
rover template list
androver template use
. These commands provide a similar experience tocreate-react-app
, and allow you to extract GraphQL project templates to your local machine. Check out the docs for more on this new functionality. -
rover dev
to facilitate developing a supergraph on your local machine - @EverlastingBugstopper, #1190rover dev
allows you to join multiple running subgraph servers together into a local supergraph, providing the ability to run queries and inspect query plans with Apollo Sandbox. Check out the docs for more on this new functionality. -
If E013 is thrown and
$APOLLO_KEY
is set, give a more helpful suggestion - @ptondereau, #1284, #1285If Studio fails to recognize an API key and
APOLLO_KEY
is set, recommend unsetting the environment variable to use--profile default
instead.
π Fixes
- Remove useless stdout line for composition results - @ptondereau, #1124, #1291
π Maintenance
-
Link directly to API Keys page in Studio - @abernix, #1202
The
rover config auth
command will now provide a link that takes you directly to the "API Keys" page where you can create a Personal API Key, rather than a page that requires you to click through to another page. -
Prefer "supergraph schema" terminology to "gateway" - @EverlastingBugstopper, #1239, #1332
rover subgraph publish
now refers to updating the "supergraph schema" as opposed to updating the "gateway," since supergraph schema consumers can be routers and/or gateways 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.9.0-rc.1
testing instructions
This release candidate includes rover dev
which allows you to develop a supergraph on your local machine.
help text
$ rover dev --help
rover-dev
Run your supergraph locally with a router and one or more subgraphs.
The first `rover dev` process you run starts a dev instance of the Apollo Router and connects it to
the running subgraph you specify. You can then run additional instances of `rover dev` to add more
subgraphs to your local supergraph (the same router instance is used). As you add subgraphs, `rover
dev` automatically composes all subgraph schemas into a new supergraph schema for the router.
The router instance is tied to the *first* `rover dev` process. If you terminate that process, the
router terminates. If you terminate a `rover dev` process *besides* the first process (thereby
removing a subgraph), a new supergraph schema is composed from the remaining subgraphs.
β οΈ Do not run this command in production! β οΈ It is intended for local development.
USAGE:
rover dev [OPTIONS]
OPTIONS:
--name <SUBGRAPH_NAME>
The name of the subgraph.
This must be unique to each `rover dev` session.
-p, --supergraph-port <SUPERGRAPH_PORT>
The port the graph router should listen on.
If you start multiple `rover dev` sessions on the same port, they will communicate with
each other.
If you start multiple `rover dev` sessions with different ports, they will not
communicate with each other.
[default: 3000]
--supergraph-address <SUPERGRAPH_ADDRESS>
The address the graph router should listen on.
If you start multiple `rover dev` sessions on the same address and port, they will
communicate with each other.
[default: 127.0.0.1]
-s, --schema <SUBGRAPH_SCHEMA_PATH>
The path to a GraphQL schema file that `rover dev` will use as this subgraph's schema.
If this argument is passed, `rover dev` does not periodically introspect the running
subgraph to obtain its schema. Instead, it watches the file at the provided path and
recomposes the supergraph schema whenever changes occur.
-u, --url <SUBGRAPH_URL>
The URL that the `rover dev` router should use to communicate with this running subgraph
(e.g., http://localhost:3000).
This must be unique to each `rover dev` session and cannot be the same endpoint used by
the graph router, which are specified by the `--port` argument.
Installation
Linux/MacOS/WSL
Run the following command:
curl -sSL https://rover.apollo.dev/nix/v0.9.0-rc.1 | sh
Windows
Run the following command
iwr https://rover.apollo.dev/win/v0.9.0-rc.1 | iex
Run rover --version
and make sure that the version is equal to v0.9.0-rc.1
. If it is not, you should run npm uninstall -g @apollo/rover
, and try rover --version
again.
Usage
pre-made demo
- clone apollographql/supergraph-demo-products
- clone apollographql/supergraph-demo-pandas
- clone apollographql/supergraph-demo-users
cd supergraph-demo-products && npm i && npm run start
to start your subgraph server- open a new terminal and run
rover dev
- you should be prompted for the subgraph name and to watch the schema, just press enter twice to accept
- you may also be prompted to accept the ELv2 license - you will only have to accept that one time
- enter the subgraph URL that was output in the other terminal
- you should see that composition succeeded and that the router is now running!
- navigate to http://localhost:3000 in your browser to make queries against the
products
subgraph through the graph router
cd ../supergraph-demo-pandas && npm i && npm run start
to start your subgraph server- open a new terminal and run
rover dev
- you should be prompted for the subgraph name and to watch the schema, just press enter twice to accept
- enter the subgraph URL that was output in the other terminal
- you should see messages saying the other
rover dev
session was notified of the new schema, and the other terminal should re-compose and reload the router - navigate to http://localhost:3000 in your browser to make queries against the
products
subgraph and thepandas
subgraph through the graph router
cd ../supergraph-demo-users && npm i && npm run start
- open a new terminal and run
rover dev
- you should be prompted for the subgraph name and to watch the schema, just press enter twice to accept
- enter the subgraph URL that was output in the other terminal
- you should see messages saying the other
rover dev
session was notified of the new schema, and the other terminal should re-compose and reload the router - navigate to http://localhost:3000 in your browser to make queries against the
products
subgraph, thepandas
subgraph, and theusers
subgraph through the graph router
- you can now make changes to the source code of any of these subgraphs and the supergraph will recompose if/when the schema for a subgraph changes.
nodemon
takes care of reloading the subgraphs themselves if only logic has changed and the schema is the same.
your own subgraphs
cd
into multiple subgraph directories, start the subgraph server, and run rover dev
for each of them, one by one, and follow the prompts. you should be able to see a locally running router after your first subgraph, and it should reload with changes when you add/remove/edit other subgraphs.
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.