OpenStack社区贡献入门
另一参考:https://blog.****.net/bill_xiang_/article/details/52719234
作者:张航东
版本:无限制
本文主要用于个人学习、总结,欢迎转载,但请务必注明作者和出处,感谢!
前两天,自己刚刚完成了第一次OpenStack社区代码的提交,说实话,其实社区贡献还是比较方便。但是正所谓“万事开头难”,对于之前没有社区经验的同事,还是要费些周折才能迈过这个门槛。
这里我将自己的经验分享出来,希望能帮助大家快速上路。
总的来说,社区代码提交可以分为4个步骤:
l 注册社区账号
l 安装本地程序
l 配置环境
l 提交代码
1 注册社区账号
OpenStack社区工作中,需要用到4个网站:OpenStack官网,Launchpad(版本、bug管理),Girrit(代码review),GitHub(代码仓库)
1.1 注册OpenStack账号
1.2 注册Launchpad和Girrit账号
(它们使用相同的Ubuntu账号),地址:https://launchpad.net/openstack或https://review.openstack.org/
1.3 注册Github账号
地址:https://github.com/openstack/
2 安装本地程序
我们需要安装3个本地程序:python,git,git-review
(这里我们以Windows操作系统为例)
2.1 安装Python
2.1.1 安装python 2.7
官网下载地址:https://www.python.org/downloads/2.1.2 添加环境变量
安装好后,check系统环境变量,确保“path”中包含:
…..\Python27
……\Python27\Scripts
2.2 安装Git
官网下载地址:https://git-scm.com/downloads)2.3 安装Git-review
2.3.1 安装pip
(参考:https://pip.pypa.io/en/latest/installing/#install-or-upgrade-pip)
简单来说,就是先下载pip安装文件(地址:https://bootstrap.pypa.io/get-pip.py),然后安装,在命令行中执行:
#python get-pip.py
2.3.2 安装git-review
在命令行中执行:
#pip install git-review
3 配置环境
3.1 Girrit网站上的配置(4项)
登录Girrit网站:https://review.openstack.org,进入个人设置,
3.1.1 设置username,建议和邮箱前缀保持一致,示例如下:
3.1.2 设置联系方式。(注意:下图红框处都要填写,否则无法提交代码)
3.1.3 生成Http密码
3.1.4 签署协议(选择ICLA)
3.2 本地Git的配置
打开Git命令行,进行以下配置:
3.2.1 设置用户姓名和邮箱
#git config --global user.name "Firstname Lastname"
#git config --global user.email "[email protected]"
PS:需根据个人实际信息,替换红色部分。
这两项仅用于显示,不做任何登录认证,目的是让Git知道“Who you are”,并且Git在向Girrit提交代码时,需要附上这个信息。
3.2.2 设置Girrit相关的访问许可(Https方式)
(需要本地已有下载好的项目工程)
每个项目工程都需要设置一遍,的目的是为了告诉Git,这个工程的review位置以及相应的登录认证信息。这样一来,就可以把项目工程和review流程关联起来。
进入项目工程的目录,执行:
#git remote add gerrit https://<Username>:<Password>@review.openstack.org/<umbrella repository name>/<repository name>.git
PS:需根据项目工程及个人实际信息,替换红色部分。
<umbrella repository name>和<repository name>是项目在Girrit网站上的仓库位置。
<Username>和<Password>就是我们在前面章节“3.1.3 生成Http密码”处在Girrit网站看到的信息,如下:
如果不小心设置错误,可通过以下命令移除后,再重新设置:
#git remote rm gerrit
4 提交代码
接下来,我们就结合一个实际例子 –“添加个人信息”,来完成第一次代码提交。
类似于nova,cinder项目,OpenStack有一个项目Stackalytics,专门负责统计OpenStack及其相关组件的代码贡献,其中有一个文件/etc/default_data.json,保存了所有贡献者的个人信息(如ID,邮箱,公司等)。我们这里说的“添加个人信息”,就是指将我们自己的信息添加到这个文件中,并上传提交。
总的来说,我们需要做一下几件事:
l 下载工程
l 关联review(girrit)
l 修改代码
l 上传提交
l Check结果
4.1 下载工程
Step 1,登录Github:https://github.com/openstack/,并搜索“stackalytics”。
Step 2,点击进入搜索出来的Stackalytics工程,然后点击右侧的“Clone or download”,并复制弹出小窗口内的下载链接。
Step 3,打开Git命令行,通过“git clone”命令将Stackalytics工程下载到本地。
#git clone https://github.com/openstack/stackalytics.git
Step 4,进入到Stackalytics工程目录,然后使用“git checkout” 命令,建主干检出一个分支到本地。
#cd stackalytics
#git checkout -b local/master remotes/origin/master
PS:红色部分是我自己定义的本地分支的名字,可自行修改。
4.2 关联review(girrit)
通过上面的操作,我们已经将Stackalytics工程下载到本地。
这时,如果我们不进行其他额外配置,修改代码然后提交,那就会直接提交到仓库,这是很危险的,因为没人敢保证我们的代码是OK的。
为了保证这一点,所以增加了一个中间环节Gerrit(Review System),让我们的代码先提交到这个系统,经过社区牛人的review,以及自动化测试之后,再自己和入到仓库,有效的保证了代码和入的质量。
所以,为了让我们的代码提交到Gerrit,而不是最终的仓库,需要在Stackalytics工程目录下,执行命令(参考3.2.2章节):
#git remote add gerrit https://<Username>:<Password>@review.openstack.org/openstack/stackalytics.git
PS:需根据个人实际信息,替换红色部分。
4.3 修改代码
在Stackalytics工程目录下,打开 /etc/default_data.json 文件,
#vi /etc/default_data.json
PS:建议用windows编辑器打开
在对应的位置,添加自己的个人信息,如下图。
注意:在添加个人信息时,需要按照launchpad_id的字母顺序表进行添加,所以你需要找到自己对应的位置。
4.4 上传提交
Step 1,将文件添加到索引(没有添加到索引的文件,提交时会被忽略)
#git add etc/default_data.json
Step 2,提交代码到本地的分支上(注意:是本地分支,还没有提交到远端)
#git commit
然后,输入关于此次提交的相关描述,并保存退出,如下图:
Step 3,提交代码到远端Girrit(review后没问题后,会自动合入Github仓库)
#git review
4.5 Check结果
登录Girrit网站:https://review.openstack.org,进入”My” -> “Changes”页签,便可看到自己的这次提交,以及review进度(+1, +2, …),如下图: