Updates some dependencies and add debug statements for GraphQL response errors - @EverlastingBugstopper, #1595
GraphQL errors are now printed when running Rover commands with --log debug.
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.
Important: 1 potentially breaking change below, indicated by ❗ BREAKING ❗
rover config whoami outputs to stdout instead of stderr and using --format json includes more information than success or failure - @scombat, #1560 fixes #1380
When running rover config whoami, the output will print to stdout instead of stderr. This may break scripts that relied on parsing the output from stderr. The good news is that these scripts should be easier to write because passing --format json to rover config whoami will print structured output that can be parsed with a tool like jq.
Allow custom headers when running introspection with rover supergraph compose - @dbanty, #1574 fixes #615
A new field is available in supergraph.yaml files that allows sending headers along with introspection. This value also supports environment variable interpolation for sensitive values like authentication tokens.
Print a warning when attempting to publish a subgraph with an invalid routing URL - @trevor-scheer, #1543 fixes #1477
When running rover subgraph publish, if the --routing-url you specify or the routing URL stored in GraphOS is unroutable, a warning will be printed. If you are not in CI, you will need to manually confirm the publish to continue. You can dismiss the warning by passing --allow-invalid-routing-url.
Note: This warning will become a hard error in the future.
rover dev - @EverlastingBugstopper, #1548 fixes #1544Updates dependencies - @EverlastingBugstopper, #1562
apollo-parser 0.4 -> 0.5
git2 0.16 -> 0.17
opener 0.5 -> 0.6
predicates 2 -> 3
serial_test 1 -> 2
toml 0.5 -> 0.7
crossterm
Use Apple Silicon in CI - @EverlastingBugstopper, #1557 fixes #1555
There should be no user facing change here, we just run builds in CI much faster.
Adds Apollo CLI migration guide to Rover docs - @StephenBarlow, #1568
The (deprecated) Apollo CLI documentation and the migration guide for Rover now live in Rover's docset.
Cleans up nomenclature and links in Rover docs - @StephenBarlow, #1571 and #1573
Rover's documentation has been updated to refer to the new GraphOS documentation along with updating some terminology.
Mention community-maintained installation methods - @dbanty, #1542
Rover's documentation now mentions the unofficial installation methods nix and brew.
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.
Dynamic templates - @dbanty, #1388
Rover now fetches templates from a GraphQL API. New templates can be contributed to the templates repo and will not require a new release of Rover to be used. To see the latest templates, run rover template list.
Fixes behavior of --router-config in rover dev - @EverlastingBugstopper, #1536 fixes #1535
Older versions of Rover did not respect the supergraph section of the --router-config file. This has been fixed in v0.13.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.
Warn when federation_version is not pinned - @EverlastingBugstopper, #1524
As of this release, we no longer recommend auto-updates for the rover supergraph compose command because of the coordination path that is required to roll out new versions of Federation. If you do not specify an exact federation_version, a warning will be printed. In a future version of Rover we will entirely deprecate auto-updating, so please migrate now. This change includes some changes to our documentation as well, check out the docs for more information.
Fixes composition error reporting in rover subgraph check - @EverlastingBugstopper, #1525
In Rover v0.12.0 and v0.12.1, running a rover subgraph check with an invalid schema failed to report the composition errors, this behavior is fixed in v0.12.2.
Updates internal node dependencies - @EverlastingBugstopper #1522
node v18.14.0 -> v18.14.1
npm v9.4.2 -> v9.5.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.
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.
Allow rover subgraph check to execute without operation check results - @jsegaran, #1490
Apollo Studio now allows you to disable operation checks for a graph variant. Older versions of Rover will fail to parse the result of a check without a result for an operation check and return an error. Running the same check in versions of Rover after 0.12.0 will succeed when operation checks are disabled.
Fix up xtask test runner - @EverlastingBugstopper, #1505
cargo xtask test detects failed tests and reruns them with some arguments. Unfortunately the code to insert --target arguments was in the wrong order and resulted in confusing internal error messages on failed tests, this is now fixed.
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.
Updates router config in rover dev to match newer versions - @dbanty, #1500
The default configuration for the router in rover dev disables the health check. The router configuration recently renamed this check from health-check to health_check, which is now reflected in rover dev's default router configuration.
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.
Manage contract configuration - @sachindshinde, #1475 fixes #1421
Rover now includes two commands for creating, modifying, and reading contracts: rover contract publish and rover contract describe. Further documentation can be found here.
Easier file output with new --output argument - @gocamille, #1413 fixes #1212
This change adds the new option, --format, to allow users to define the format type for messages printed to stdout (either by passing plain or json 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 to rover dev - @EverlastingBugstopper, #1446 fixes #1373, #1345, and #1468
The new --router-config argument for rover 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, #1432
rover dev will automatically use the version of the router specified in this plugin file instead of a hard coded version.
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
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.
This release includes some changes to rover dev:
--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 --nameThere are two new commands: rover contract publish and rover 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.
This release includes some changes to rover dev.
--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 --nameThis 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.
This release includes some changes to rover dev.
--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 --nameThis 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.
Important: 1 potentially breaking change below, indicated by ❗ BREAKING ❗
Fix implementation of --header argument - @EverlastingBugstopper, #1369 fixes #1365
This change tightens up usage of the --header argument used for introspect 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".
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 #992
Rover now resolves all subgraph schemas in parallel when running rover supergraph compose on a supergraph.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 to rover dev - @patrick91, #1377 fixes #1221
You can now set --polling-interval when running rover 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 #1394
Once 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, #1360
rover will not use color in any output when executed with the NO_COLOR environment variable set to true.
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.js to v18 - @renovate, #1389
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 of engine@current to fetch the API schema - @EverlastingBugstopper, #1368
Use lychee as a link checker instead of npm - @ptondereau, #1328 fixes #1306
We 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, #1363
When 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 to apollographql- headers - @jsegaran, #1411
Update npm to v9 - @renovate, #1412
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 of publish - @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.
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.
This release is essentially the same as v0.9.1, except for a few things:
rover dev to v1.1.0 by default.rover without emulation on your M1/M2 machines. However, the supergraph and router plugins will still be emulated as we cannot yet cross-compile them, and CircleCI does not provide ARM-enabled MacOS runners.rover in Docker containers on M1/M2 devices as well instead of needing to build it from source.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.
Add templates for TypeScript, Go, Kotlin, and Java - @dbanty, #1347
The rover template commands now include four more languages.
Properly report errors when the first rover dev process starts up - @EverlastingBugstopper, #1342
If something went wrong while starting the first rover dev process, it would attempt to start an attached process, which would fail with an inscrutable the main rover dev session is no longer active error message. Now, Rover properly reports issues with starting up the first rover dev session.
Properly report plugin installation errors on rover dev startup - @EverlastingBugstopper, #1357
If 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, #1340
Some 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 #1349
In 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.
Fix typo in rover subgraph publish output - @EverlastingBugstopper, #1358 fixes #1337
Instead 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, #1344
All 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
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.
rover template command suite - @dbanty, @michael-watson, @EverlastingBugstopper, #1287
Two new commands have made their way to Rover: rover template list and rover template use. These commands provide a similar experience to create-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, #1190
rover 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, #1285
If Studio fails to recognize an API key and APOLLO_KEY is set, recommend unsetting the environment variable to use --profile default instead.
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.
This release candidate includes rover dev which allows you to develop a supergraph on your local machine.
$ 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.
Run the following command:
curl -sSL https://rover.apollo.dev/nix/v0.9.0-rc.1 | sh
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.
cd supergraph-demo-products && npm i && npm run start to start your subgraph serverrover dev
products subgraph through the graph routercd ../supergraph-demo-pandas && npm i && npm run start to start your subgraph serverrover dev
rover dev session was notified of the new schema, and the other terminal should re-compose and reload the routerproducts subgraph and the pandas subgraph through the graph routercd ../supergraph-demo-users && npm i && npm run startrover dev
rover dev session was notified of the new schema, and the other terminal should re-compose and reload the routerproducts subgraph, the pandas subgraph, and the users subgraph through the graph routernodemon takes care of reloading the subgraphs themselves if only logic has changed and the schema is the same.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.
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.
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.
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.