如何提交代码给openstack

http://blog.csdn.net/ffb/article/details/9625011

如果想为openstack做贡献,最好的方法就是帮助社区完成blueprint或者做bugfix。代码的提交需要遵循社区的一些基本要求,以下内容是去年对openstack社区的参与过程中的一些总结。

原文地址:http://blog.csdn.net/ffb/article/details/9625011


流程

  1.     注册一个openid
  2.     申请个人CLA证书
  3.     申请公司CLA证书(个人不需要做本步骤)
  4.     更新贡献者列表,公司栏写上所属公司的名字
  5.     加入OpenStack Contributors组(必须)和OpenStack组 https://launchpad.net/~openstack-cla/+join(必须)
  6.     设置SSH Keys(复制本地~/.ssh/id_rsa.pub的内容即可)
  7.     认领一个blueprint/bug(这步可以跳过)
  8.     git clone代码到本地,配置user.name和user.email和openid中登记的一致
  9.     在期限内修改,并通过所有测试(不通过测试一定会被拒)。代码的一个基本的要求是要符合 PEP8 规范。
  10.         |__如果超过期限,去界面上点击“Restored”按钮即可
  11.     用git review命令提交审核
  12.     等待评审结果
  13.     按照评审要求修改代码,用git commit …. -amend提交修改
  14.     再次git review直到成功

测试要求


[plain] view plain copy
  1. import库的名称需要按照字母顺序排列  
  2.   
  3. pep8检测:  
  4. sudo apt-get install pep8  
  5. ~/nova$ pep8 .  
  6.   
  7. nosetest:  
  8. sudo pip install nose  
  9. ~/nova$ nosetests .  
  10.   
  11. novatest:  
  12. ~/nova$ sudo ./run_tests.sh [api/xxx/xxxx.py]  
  13. 例如:./run_tests.sh test_db_api  
  14.   
  15. tempest-devstack:  
  16. cd devstack; source exerciserc; ./exercise.sh  


注释要求


格式分为三部分,最前面一行是本地修改的简述,后面空一行之后写本次修改的详细描述,后面再空一行写本次修改对应的bugid或者bpid,然后紧接着写changeid。 系统会根据注释中的Change-Id去判断这个提交是属于那个bp的,fixbug和implement blueprint要写在changeid前面一行。

[plain] view plain copy
  1. Implement bp:efficient-limiting.  
  2.   
  3. 1.add limit param to db.instance_get_all_by_filters()  
  4. 2.execute limit before sqlarchmy get_all()  
  5.   
  6. Fixes: bug #1003373  
  7. Implements: blueprint xxxxxxxxxxx  
  8. Change-Id: Iea3eeb7b51194b6017d624506aafc6469d7338e4  

参考文档:Summary_of_GIT_commit_message_structure |Information_in_commit_messages



更新要求


在执行git review之前,应该确保review是最新的,使用如下命令更新当前代码到最新版本:

[plain] view plain copy
  1. git fetch origin master  
  2. git rebase FETCH_HEAD  
  3. git add .  
  4. git commit --amend  
  5. git review  

如果rebase的时候发生冲突,应该手工解决冲突之后执行git rebase --continue


F.A.Q.

[Q]由于服务器的原因导致提交review后的代码测试失败。
[A]
对这个patch执行review,如果是SmokeStack,输入reverify,如果是Jenkins,输入recheck即可让其重新进行测试
[Q]如何在家继续修改
[A]
在公司提交patch去review后,在家继续进行修改,可以
1. 本地执行
     git-review -d review_number
    如,git-review -d 12859
    这个步骤会校验ssh-key

或者
2. 将Jekins上的改动merge到本地。
    在review按钮附近有按钮


参考文档

社区:nova bugs |review.openstack.org | blueprint |

文档:GerritWorkflow |assign-commit-and-review | progit


你可能感兴趣的:(如何提交代码给openstack)