环境:ubuntu14.04 server版 + VMware Workstation 10.0
本文主要参考此文,有些不同之处,包括bug解决以及一些过程的细化。
建议结合官方文档,出问题了访问这里,查找是否有相同问题。
《向 OpenStack 贡献您的代码》这篇文章分步骤完成,很是详尽。虽然此文并没有使用IDE这一步,但是其它一致,这里就按照其步骤来,但是会更为详细。
第一步 设置账户
先看看openstack的开发流程,如图:
参考上图可看到,开发者并不能在修改openstack源码后直接提交到github,需要走个中间过程gerrit,通过该过程审核测试后才能被提交。
如果对git不太了解,推荐廖老师的博客可以很快上手。
有三个地方要注册账户,分别是launchpad (一般report/assign bugs)、gerrit(code review,给别人或自己了解所关注项目的变化)、openstack (用以承认开发者为openstack的开发者),其中前两个一定要把email设置一致,不然后期提交bug出现错误。接下来分别列出三个的注册过程:
1. Set launchpad account
只需要设置好图中的1、2两个信息就好,信息1中的邮箱要与第2步的gerrit邮箱一致。信息2的ssh key生成步骤可参考此文,注意其中的邮箱设置要与信息1中的邮箱一致。(用一个邮箱就行了,不会错,初学就别给自己添堵)
至于上图中的OpenPGP keys,笔者也是最初参考《向 OpenStack 贡献您的代码》一文,其说明了要设置,实则官网参考手册不需要的,过程繁琐,所以忽略之;至于launchpad id,是可以改的,但是不能与已有的ids重复,这个对后面也没影响,设置一个就好,别较真;还有个Karma值,这是后期report bug之后给的积分还是什么,最开始设置账户是为0的,忽略之。
2. Set gerrit
开始设置时,需要唯一的username,记住这个username是唯一的,以后都是通过这个标识来访问的。在gerrit里面需要设置四个地方:
—-Contact Information,主要是设置full name和与launchpad相同的email(full name不强调唯一且可以更改,最好还是与username设置一致,笔者开始设置不一致导致出错);
—-SSH Public Keys,这个与launchpad里面的设置一样,不赘述;
—-HTTP Password,这个有必要,特别是国内的开发者,这样可以使用HTTPS来取代SSH方式提交代码。
—-Agreements,New Contributor Agreement,然后签署ICLA:
3. Join The OpenStack Foundation
这一步很简单也很重要,下图是设置后的图:
这里的设置有两点要说明,member level的选择以及个人信息的设置。
member level要选择foundation member,不要选择community member;
个人信息要设置好邮箱等基本信息,其他信息对后面贡献代码不太重要,有心者填写详细些也是可以的。
第二步 本地配置
1. 配置本地git-review
这里都是一些终端命令:
安装git review
sudo apt-get install git-review
基本信息设置
git config –global user.name “leo”
git config –global user.email “your_email@youremail.com”,所有邮箱设置一样就好
本地配置使用https访问
git config –global gitreview.scheme https
git config –global gitreview.port 443
git config –global gitreview.username leo
清洁环境先
git remote rm gerrit
添加远程gerrit,不然会提示找不到gerrit
git remote add gerrit https://leo@review.openstack.org:443/openstack/keystone.git
键入git config -l得到这样的结果:
2. 从github上clone一个待测试项目
git clone https://git.openstack.org/openstack/keystone.git
3. 测试git-review
git review -v ,第一次运行会提示输入密码(review上设置的https访问密码),完了如下图:
提示没有改动,所以这次提交时没有意义的。以上只是测试而已,接下来要提交一个bug。
第三步 测试提交修改bug后的工程
修改一个bug,首先得定位一个bug,定位后把这个bug分配给自己(以上均是在launchpad账号上完成),在本地克隆的工程修改完成后git review ,成功后会在自己的gerrit账号(review)My–>changes会出现对应的提交记录。下面详述以上过程:
1. report a bug
为什么要report a bug?因为这里是测试用例,可不能拿别人report的bug来玩。
1)访问https://launchpad.net/keystone,选择Report a bug;
2)然后会要你描述一下bug信息,这里描述为”test for git review,ignore it“,接着会列出一些bugs,拖到最下面选择”no, i need to report a new bug“,Summary 和Further information填写”test for git review,ignore it“,然后submit bug report,如图:
2. assign the bug to yourself
上图是完成第2步后的情形,现在在图中红色方框内把这个”Unassigned”标签点击一下,再选择”assign me“即可。这是笔者的bug地址https://bugs.launchpad.net/keystone/+bug/1526637,最后的数字是bug id,独一无二的,还有个用处是在debug时用的git 分支最好把这个id包含进去,以提醒自己修改的是哪个bug。
3. fix the bug on your machine
这里修改工程时,得用到一些git的操作,上面有git基本教程,不记得再往上翻翻,不赘述。
新建并切换分支:git checkout -b bug1526637 ;
在分支中改代码,这里只创建一个文件就行,文件名为testforbug1526637 , 键入命令touch testforbug1526637,可以查看现在的文件信息如图:
剩下的就是git命令,先添加再提交,如图:
至此,本地修改完成,正常修改bug还是要本地测试的。
4. git review your work
上面工作完成后,键入git review,会提示输入设置的密码,如图:
git review成功后访问https://review.openstack.org/,登陆个人账号(My–>changes),查看提交记录,如图:
红色框内是刚刚提交的信息摘要,单击可查看详细信息。