Contributing to Rover
Rover is not yet ready for external feature contributors, but documentation contributions are welcome. At this time, this article is intended primarily for internal contributors and partners.
Rust has a build tool and package manager called
cargo that you'll use to
interact with Rover's code.
To build the CLI:
To run the CLI:
cargo run -- <args> # e.g. cargo run -- help will run the rover help command
src/bin/rover.rs: the entry point for the CLI executable
src/command: logic for the CLI commands
src/command/output.rs: Enum containing all possible
stdoutoptions for Rover commands
src/utils: shared utility functions
src/error: application-level error handling including suggestions and error codes
src/cli.rs: Module containing definition for all top-level commands
src/lib.rs: all the logic used by the CLI
crates/houston: logic related to configuring rover
crates/robot-panic: Fork of robot-panic to create helpful panic handlers
crates/rover-client: logic for querying apollo services
crates/sputnik: logic for capturing anonymous usage data
crates/timber: output formatting and logging logic
Documentation for using and contributing to rover is built using Gatsby and Apollo's Docs Theme for Gatsby.
To contribute to these docs, you can add or edit the markdown & MDX files in the
To build and run the documentation site locally, you'll have to install the relevant packages by doing the following from the root of the
cd docs npm i npm start
This will start up a development server with live reload enabled. You can see the docs by opening localhost:8000 in your browser.
To see how the sidebar is built and how pages are grouped and named, see this section of the gatsby-theme-apollo-docs docs. There is also a creating pages section if you're interesed in adding new pages.