PR提交指南
#
准备工作- 在您准备向我们提交代码之前,请先阅读开发规范并严格遵守其中规定的代码格式
- 请确保您想要修复或增强的功能存在对应的 issue ,如果是您新发现的问题或想提供 issue 中没有的功能增强,请先新建一个 issue 并设置正确的标签,并在这个 issue 下回复表明您正在这个 issue 上工作。 提交或处理 issue 请参考Issue提交与处理规范
- 请在 git 中正确设置
user.name
与user.email
参数,否则您的id可能不会显示在 contributor 列表中,参考指令git config --global user.name "username"
#
开发流程1. 准备仓库
到 ChaosBlade Github Repo fork 仓库到您的Github账号。
克隆到本地。
注: 这里仅以ChaosBlade项目为例,ChaosBlade将项目按场景和领域划分为了很多不同的项目,请正确拉取您想要更改的项目并确保项目能通过编译。
添加ChaosBlade远程仓库。
执行编译命令make build
确保项目可以通过编译,这里我们推荐您阅读项目内的MakeFile文件,如果您清楚的了解自己要修改项目的哪一部分,可以有选择性地仅执行对应的make指令,例如:
2. 选择 issue
- 选择您想要修改的 issue ,在其中回复并表明您正在当前这个 issue 上工作,并在回复的时候为自己设置一个 deadline。
- 社区会有一位 Member 负责跟进该 issue 的处理,您也可以通过邮箱主动联系 Member,获得相关的建议、讨论或指导。
3. 创建分支
切换到拉取的fork分支,拉取最新的代码,并基于此分支创建这次的工作分支
4. 编码开发
- 请您在开发过程中遵循 ChaosBlade 的开发规范。并在准备提交 pull request 之前完成相应的检查,测试涉及到的 ChaosBlade 命令工作正常。
- 将修改的代码 push 到 fork 库的分支上。
5. 提交PR
- 在您 fork 的仓库首页向 ChaosBlade 的 master 发起一次Pull Request,请在 PR 描述中附带您之前选择的 issue 链接以关联 issue 与这次 pr 提交。
- 接着,会有负责该 issue 的 Reviewer 审阅这次提交,他可能会在 PR 中与您讨论一些实现上的细节和问题。当 Reviewer 对这次提交满意之后,会将提交合并到开发版本的分支之中。
- 最后,恭喜您已经成为了 ChaosBlade 的贡献者!
在您的分支被合并之后,您可以删除远程分支(Origin/issueNo)和与其关联的本地分支(issueNo)
#
提交规则Commit Message
Commit Message可以帮助 Reviewer 更好地理解提交 PR 的目的是什么。它也可以帮助加速代码 review 过程。我们鼓励贡献者使用明确的提交消息而不是模棱两可的消息。一般来说,我们提倡以下提交消息类型:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- refactor: A code change that neither fixes a bug or adds a feature
- perf: A code change that improves performance
- test: Adding missing or correcting existing tests
- chore: Changes to the build process or auxiliary tools and libraries such as documentation generation
我们不鼓励开发者提交类似以下的Commit Message:
- fix bug
- update
- add doc
Commit Content
提交内容代表一次提交中包含的所有内容更改。我们最好在一个提交中包含可以支持 Reviewer 完整审阅的内容,而无需任何其他提交的帮助。换句话说,一次提交中的内容可以通过 CI 以避免代码混乱。简而言之,我们需要记住一条小规则:
- 尽量将设计精细化拆分;做到小幅度修改,多次数提交,但应保证提交的完整性。
#
其他开发者应遵循社区贡献者行为准备,详情查看CONTRIBUTOR COVENANT CODE OF CONDUCT
对您的提交签名
请对您提交信息的尾行增加签名,这将证明是您编写了该补丁且有权将其作为开源补丁传递。
您需要在每一个Commit Message的末尾行加上
请使用您的真实姓名(抱歉,暂不接受匿名或化名的贡献)
如果您在 git 参数中设置了 user.name
和 user.email
,可以直接通过 git commit -s
进行签名,-s
参数会自动将签名行加入Commit Message末尾