贡献
所有贡献者都应该遵循 Hummingbot 仓库中使用的代码约定。指南如下所述。
工作流程¶
1. Fork 仓库¶
使用 GitHub 界面对仓库进行 Fork 并将其克隆到本地机器。
2. 添加远程仓库¶
将 Hummingbot 仓库添加为上游远程仓库,并获取上游数据:
3. 创建你的分支¶
创建你的本地分支,应遵循以下命名约定:
- feat/ ...
- fix/ ...
- refactor/ ...
- doc/ ...
基于远程 upstream
的 development
创建并切换到一个名为 feat/[branch_name]
的新本地分支。
4. 提交更改到分支¶
向你的分支提交更改,并确保你只进行相关更改。如果你发现自己在进行无关的更改,请为这些更改创建一个新分支。每个提交的前缀如下所示:
- (feat) 添加新功能
- (fix) 修复不一致的测试
- (refactor) ...
- (cleanup) ...
- (doc) ...
提交消息指南:
- 提交消息应使用现在时,例如 "(feat) add unit tests"。
- 提交消息的第一行应该是对提交更改的总结。目标是最多约 70 个字符。记住:这是摘要,而不是对所有更改的详细描述。
- 如果你想更深入地解释提交内容,第一行之后应该是空行,然后是对提交的更详细描述。这可以尽可能详细,因此请深入细节并保持第一行简洁。
5. 变基上游更改¶
当你完成更改后,你可以开始将代码合并到主仓库。第一步是将上游更改变基到你的分支。
这将开始变基过程。你必须在执行此操作之前提交所有更改。如果没有冲突,这应该将所有更改重新应用到上游更改之上,从而形成优秀、干净、线性的提交历史。
如果有冲突更改,git 会在变基过程的中途开始报错。然后,git 将暂停变基以允许你解决冲突。你以相同的方式解决合并冲突,即检查 git 所说在两个历史中都已更改的所有文件并选择你想要的版本。请注意,这些更改将出现在你的拉取请求中,因此请尽可能地合并上游更改。
你通过 git add
文件来选择它 - 你在变基期间不进行提交。
6. 创建拉取请求¶
从你的 Fork 和分支向上游开发分支创建一个清晰的拉取请求,详细说明你做了哪些更改以及应该添加什么功能。你的拉取请求越清晰,你的更改就能越快地合并到这个仓库中。
检查 Allow edits by maintainers 很重要,这样 Hummingbot 团队可以随时更新你的分支与 development
保持同步。
如果开发团队要求更改,你应该向你的分支提交更多提交以解决这些问题,然后从变基开始再次遵循此过程。
一旦你回到这里,发表评论请求进一步审查,然后有人会再次查看你的代码。如果解决了请求,它将被合并。否则,重复该过程。
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
分支? - 我是否编写了详细的拉取请求消息,说明我所做的更改?
- 我是否获得了代码审查?
- 我是否根据该代码审查进行了任何要求的更改?
如果您遵循了所有这些准则并进行了良好的更改,您的更改应该能够毫无问题地合并。