1. 在邮件列表里开启一个新的讨论
如果有需要实现比较大的更改,先要去邮件列表里讨论
2. 开一个issue
开一个新的issue。 将用作您所做更改的总括。 也用于跟踪进度和讨论实施细节。
3. 拉一个fork
这个fork将用来维护自己的更改
4. 创建一个分支
git checkout -b <jira_issue_id>_<change_name>
5. 在分支上更改
6. 为更改写测试,并确定所有测试都通过
确保添加或修改的所有代码具有适当的测试覆盖率。 还要确保所有的测试,包括现有的测试仍然通过。
使用libcloud.test.unittest
作为单元测试包,确保兼容旧版本python
7. 提交更改
为更改进行单个提交。 如果存在相应的JIRA故障单,请确保提交消息包含故障单号。
git commit -a -m "[LIBCLOUD-123] Add a new compute driver for CloudStack based providers."
8. 为提交添加pull request
去 https://github.com/apache/libcloud/ 为你的提交创建一个新pull request。将会出现在这里 https://github.com/apache/libcloud/pulls.
确保描述信息准确,单元测试通过
9. 等待被review
等待更改被审核,并解决提出的任何问题。
10. 生成patch
注意#1:在生成补丁并压缩提交之前,请确保将您的分支与最新的中继同步(在您的分支中运行git pull upstream trunk),否则我们可能会遇到问题。
注意#2:如果你从来没有使用rebase并且压缩了提交,你可以在下面的指南中找到如何做的说明:使用rebase压缩提交。