跳转至内容

贡献

所有贡献者都应该遵循 Hummingbot 仓库中使用的代码约定。指南如下所述。

工作流程

1. Fork 仓库

使用 GitHub 界面对仓库进行 Fork 并将其克隆到本地机器。

git clone https://github.com/{user_github_handle}/hummingbot.git

2. 添加远程仓库

将 Hummingbot 仓库添加为上游远程仓库,并获取上游数据:

git remote add upstream https://github.com/hummingbot/hummingbot.git
git fetch upstream

3. 创建你的分支

创建你的本地分支,应遵循以下命名约定:

  • feat/ ...
  • fix/ ...
  • refactor/ ...
  • doc/ ...

基于远程 upstreamdevelopment 创建并切换到一个名为 feat/[branch_name] 的新本地分支。

git checkout -b feat/[branch_name] upstream/development

4. 提交更改到分支

向你的分支提交更改,并确保你只进行相关更改。如果你发现自己在进行无关的更改,请为这些更改创建一个新分支。每个提交的前缀如下所示:

  • (feat) 添加新功能
  • (fix) 修复不一致的测试
  • (refactor) ...
  • (cleanup) ...
  • (doc) ...

提交消息指南:

  • 提交消息应使用现在时,例如 "(feat) add unit tests"。
  • 提交消息的第一行应该是对提交更改的总结。目标是最多约 70 个字符。记住:这是摘要,而不是对所有更改的详细描述。
  • 如果你想更深入地解释提交内容,第一行之后应该是空行,然后是对提交的更详细描述。这可以尽可能详细,因此请深入细节并保持第一行简洁。

5. 变基上游更改

当你完成更改后,你可以开始将代码合并到主仓库。第一步是将上游更改变基到你的分支。

git pull --rebase upstream development

这将开始变基过程。你必须在执行此操作之前提交所有更改。如果没有冲突,这应该将所有更改重新应用到上游更改之上,从而形成优秀、干净、线性的提交历史。

如果有冲突更改,git 会在变基过程的中途开始报错。然后,git 将暂停变基以允许你解决冲突。你以相同的方式解决合并冲突,即检查 git 所说在两个历史中都已更改的所有文件并选择你想要的版本。请注意,这些更改将出现在你的拉取请求中,因此请尽可能地合并上游更改。

你通过 git add 文件来选择它 - 你在变基期间不进行提交。

6. 创建拉取请求

从你的 Fork 和分支向上游开发分支创建一个清晰的拉取请求,详细说明你做了哪些更改以及应该添加什么功能。你的拉取请求越清晰,你的更改就能越快地合并到这个仓库中。

检查 Allow edits by maintainers 很重要,这样 Hummingbot 团队可以随时更新你的分支与 development 保持同步。

Creating a pull request

如果开发团队要求更改,你应该向你的分支提交更多提交以解决这些问题,然后从变基开始再次遵循此过程。

一旦你回到这里,发表评论请求进一步审查,然后有人会再次查看你的代码。如果解决了请求,它将被合并。否则,重复该过程。

7. 在 Snapshot 中创建提案 ⚡️

如果你想让你的贡献得到审查、合并到官方 Hummingbot 代码库并包含在持续的月度发布中,你需要获得一个 Proposal 的批准。

在适当的 Snapshot 子空间中按照提案页面上的说明创建新提案。请确保您至少拥有 200,000 HBOT 来创建新连接器提案,或 1 HBOT 来创建拉取请求提案。投票期为 7 天,HBOT 持有者将决定您的提案是否被接受或拒绝。

8. 代码审查

一旦 PRP 获得批准,您的代码将由 QA 团队进行测试,如果通过所有测试,技术评审 DAO 将审查代码。

修复审阅者要求的任何更改,解决测试人员提出的的问题,并将您的修复作为单个新提交推送。

9. 合并

一旦拉取请求经过审查并被接受,它将由 Hummingbot 开发团队的成员合并。

附加信息

单元测试覆盖率

注意

测试非常重要。如果您的拉取请求包含新的可测试行为,请提交测试。有关更多信息,请参见 单元测试覆盖率

需要为拉取请求中包含的所有更改提供至少 80% 的单元测试覆盖率。但是,某些组件不包含在此验证中(例如所有 UI 组件)。

要在本地计算机上计算差异覆盖率,请在运行所有测试后运行 make development-diff-cover

检查清单

这将帮助您组织流程。

  • 我是否从 development 创建了我的分支?
  • 我是否遵循了正确的分支命名约定?
  • 我的分支是否专注于单一主要变更?
  • 我的所有变更是否都直接与此变更相关?
  • 我是否在完成所有工作后重新设置了上游 development 分支?
  • 我是否编写了详细的拉取请求消息,说明我所做的更改?
  • 我是否获得了代码审查?
  • 我是否根据该代码审查进行了任何要求的更改?

如果您遵循了所有这些准则并进行了良好的更改,您的更改应该能够毫无问题地合并。