如何向OpenStack社区提交代码

有幸参加OpenStack bug smash活动,对“我的第一个patch”做了一下总结,写了如下教程

前期准备

  • 创建一个 Launchpad( https://launchpad.net/openstack )账号,加入OpenStack社区。
  • 在( https://www.openstack.org/profile )上注册账号(这里的账号与1.中的账号,邮箱应该一致),成为Foundation Member(否则后面提交会出现问题)。
  • 进入( https://review.openstack.org ),登陆。
  • 进入( https://review.openstack.org/#/settings/ )在里面填写如下信息:
    • 在Profile中的Username 。
    • 在Agreements中签署协议(个人是ICLA)。
    • 在Contact Infomation中填写所有内容,注意如果之前不是Foundation Member就会出现无法提交问题。
    • 在HTTP Password中Generate Password,生成一串代码。后续提交代码时需要用到这串密码。
  • 获取所参与的工程的代码(此处以openstackclient项目为例,不同的项目有不同的路径):
    $git clone http://git.openstack.org/openstack/python-openstackclient.git
    之后进入项目目录:$cd python-openstackclient

配置git和git-review

  • 安装git-review

  • 配置

修改并提交代码

  • 创建分支

  • 修复bug

  • 提交

执行了以上命令之后会启动编辑器,进行提交信息的填写。提交信息的填写规范如下:
第一行:标题,概括你此次提交代码的功能或者目的。
第二行:换行。
第三行以及之后:具体地说明提交的内容、功能、目的等。
倒数第二行:换行。
最后一行:Closes-Bug:#xxx或者Partial-Bug: #xxx(其中xxx为bug的编号)。

  • 提交完之后可以用git log命令看到你提交的信息

log中最上面的的一条commit即是最新的commit,注意看看刚刚所提交的commit有没有change-id,如果没有的话之后会提交失败,可能是配置git review的时候缺少commit-msg文件的问题(见第二部分中的2.配置)。

  • 执行完以上命令后执行git review完成提交

执行成功后会出现Review: https://review.openstack.org/xxxxx(其中xxxxx是数字)。这里的Review:的URL就是Gerrit的URL。相关的测试将自动被实施,从Zuul Status可以看到自己的测试的Status。通过此页面可以用自己的Gerrit的ID来检索。

评审和接受

测试通过的话,各个工程的Core Developer会进行代码评审。如果有两名Core Developer分别进行了+1操作,代码就会被合并。
如果被指出有问题的话,修改后执行以下命令再次实施测试。然后,务必在Gerrit的Reply处对指正的人表示感谢。

补充:git的其他相关功能

  • git 制作patch
    在commit 之后,使用命令

  • git send email


有用的git命令:

创建并切到一个topic:

查看自己的分支:

查看自己的改动:

查看自己改动哪些文件:

commit代码:

查看commit之后的状态(注意颜色变化):

进入界面:

格式如下:

然后退出编辑,执行git commit -a

git log可以看到自己的commit,还有唯一的ID

最后一步是git review

这个就是我的第一个patch提交界面

社区的core给我review完了之后,代码就被merge到master主分支上了

作者简介:
蒋暕青@上海宽带技术及应用工程研究中心:SDN技术实践者,大四北上思博伦实习半年,现工作地点上海

--------------华丽的分割线------------------
本文系《SDNLAB原创文章奖励计划》投稿文章,该计划旨在鼓励广大从业人员在SDN/NFV/Cloud网络领域创新技术、开源项目、产业动态等方面进行经验和成果的文字传播、分享、交流。有意向投稿的同学请通过官方唯一指定投稿通道进行文章投递,投稿细则请参考《SDNLAB原创文章奖励计划》


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17435.html
分享到:
相关文章
条评论

登录后才可以评论

蒋暕青 发表于16-07-20
1