为Rover做贡献
贡献指南
先决条件
Rover 使用 Rust 编写。为了贡献,您需要安装 Rust。要安装 Rust,请访问 https://www.rust-lang.net.cn/tools/install.
Rust 有一个名为 cargo
的构建工具和包管理器,您将使用它来与 Rover 的代码交互。
工作流程
构建 CLI
cargo build
要构建 CLI 而不使用 rover supergraph compose
(对于 Alpine Linux):
cargo build --no-default-features
要为不同的平台交叉编译 Rover,你可以执行以下命令,其中 TARGET
是 Rust 支持的平台之一:
rustup target add <TARGET>cargo build --target <TARGET>
要构建和运行具有一系列 参数的 CLI:
cargo rover <args>
例如,构建和运行 rover supergraph compose
:
cargo rover supergraph compose --config config.yaml
您也可以通过 cargo 从源码安装 Rover 到您的本地 PATH,首先克隆此存储库,然后运行:
cargo rover install
运行测试
cargo test --workspace
格式化您的代码
rustup component add rustfmtcargo fmt --all
检查您的代码
rustup component add clippycargo clippy
运行 CI 中运行的 lint 检查器
cargo xtask lint
运行 CI 中运行的测试
cargo xtask test
启动本地开发服务器用于 Rover's docset:
cargo xtask docs
IDEs
Team Rover primarily uses VS Code along with rust-analyzer when developing Rover. rust-analyzer
can also be used with other IDEs if you are more familiar with something else.
How to contribute
Using issues
The Rover team works largely in public using GitHub issues to track work. To make sure contributions are aligned with the project's goals, keep the following issue etiquette in mind:
- Open an issue for your contribution. If there is already an issue open, please ask if anyone is working on it or let us know you plan on working on it. This will let us know what to expect, help us to prioritize reviews, and ensure there is no duplication of work.
- Use issue templates! These templates have been created to help minimize back-and-forth between creators and the Rover team. They include the necessary information to help the team triage your issue or question, as well as automatically applying the appropriate labels.
- Issues with the
triage
label still applied have not yet been reviewed by the Rover team, and there are no guarantees that PRs fixing an untriaged issue will be accepted. It's best to wait for issues to be triaged before beginning work.
Submitting a Pull Request
Pull requests (PRs) should only be opened after discussion and consensus has been reached in a related issue, and you have communicated your intentions to create a PR with the Rover team.
- When creating a PR, make sure to link it to an issue or use the
Fixes #123
syntax to make sure others know which issue(s) your PR is trying to address and to help us automatically close resolved issues. - 提供有用的描述。为审阅者提供上下文很重要,展示如何你的PR解决了一个问题,以及你仍然未能回答的问题,或者你认为需要额外关注的部分代码。
- 如果你的工作仍在进行中,并且你正在通过提交PR来获取早期反馈,请通过将其作为草稿PR并添加
wip:
前缀到PR标题中,让我们知道。 - 为你的代码中任何逻辑更改添加测试,尤其是如果你正在修复一个错误。在合并之前,你的PR不应该有失败的测试。如果你需要编写测试的帮助,让我们知道,Rover代码库中仍然有一些部分没有建立测试模式。
- 在CHANGELOG.md中“未发布”标题下添加一个变更日志条目,按照以前条目的模式。
文档
Rover的文档和贡献是通过Gatsby和Apollo Gatsby文档主题。
要为这些文档做出贡献,你可以在docs/source
目录中添加或编辑Markdown & MDX文件。
要在本地构建和运行文档网站,你必须在Rover存储库的根目录中执行以下操作,安装相关包:
cd docsnpm inpm start
这将启动一个开发服务器,并启用实时刷新。您可以通过在浏览器中打开localhost:8000来查看文档。
要了解侧边栏是如何构建的,以及页面是如何分组和命名的,请查看此部分的 gatsby-theme-apollo-docs 文档。如果你有兴趣添加新页面,还有一个创建页面部分。
架构
想了解Rover的架构并查看如何添加新命令的指南,请参阅我们的架构文档。
行为准则
该项目有一个行为准则,所有贡献者都应遵守。此准则描述了所有贡献者的行为最低期望。
作为贡献者,你如何对待和你以及社区的其他贡献者互动,将不仅反映你自己,也反映整个项目。行为准则首先旨在帮助在项目内建立一个让愿意贡献的人都能感到安全的文化。
若任何个人以任何方式被认定为违反行为准则,将采取纠正措施。然而,任何个人都可能会以不违反行为准则严格字面的方式行动,但同时完全违背该准则的意图。
开放、多元和包容的社区依赖于信任。只要相互信任分歧是出于真诚,并朝着共同目标努力,贡献者就可以持有分歧。
不良行为者
所有贡献者默许遵守行为准则的文意和精神。不遵守或不情愿遵守将导致贡献被礼貌拒绝。
一个不良行为者是那些不遵守行为准则的精神,多次在与其他贡献者的互动中未能自律的人。这样做,不良行为者会使其他贡献者疏远,阻碍合作,并总体上对项目产生负面影响。
成为不良行为者可能是故意的或无意的。通常,无意的恶行可以很容易通过迅速道歉并纠正课程来改正,即使你并不完全确信你需要。给予其他贡献者信任,真诚愿意承认你可能错了,对于任何成功的开放合作至关重要。
不要成为不良行为者。