OpenStack社区的参与

OpenStack社区的参与

本人是最近在参与OpenStack Tacker社区的一个整理,如有雷同,实属荣幸。

概要

Openstack作为世界级的开源项目,在社区进行bug修正和patch提交可以加深对技术的理解和深度,对今后个人的发展,有十分的好处。 
OpenStack tacker社区主要通过互联网及相关网站来进行交流、开发、维护代码,其中关于bug及patch的相关内容,包括:

  • 报告Bug相关的问题: bug提交、状态修改、评论、复现、指定修复人员等;

  • 修复Bug相关的问题: Gerrit上提交patch, 跑Jenkins测试, 评论代码等;

相关网站

社区Bug&Patch提交

社区账号申请

  • OpenStack的bug跟踪网站直接使用的ubuntu的launchpad网站;
  • CodeReview和Gerrit提交账号通过ubuntu的Ubuntu One账号来认证登录;
  • 申请网址:https://login.launchpad.net/+login

Bug搜索、查看

  • 打开tacker bug跟踪网址:https://bugs.launchpad.net/tacker/

    我们可以看到左下方列出的bug列表,包含bug严重等级、bug状态及bug号,同时可以点击查看bug详情,左上角可按名称搜索相关bug。

  • Bug严重等级:Critical、 High、 Medium、Low、Wishlist、Undecide

  • Bug状态有:

    状态说明
    New新bug
    IncompleteBug信息不全,需要补充
    Opinion有不同意见,需要讨论
    Invalid不是有效bug,别忘了给出原因
    Won’t Fix不准备修复,只有管理员能设置
    Confirmed被其他人确认能够复现
    Triaged评论中有解决方案,只有管理员能设置
    In Progress正在修复中
    Fix Committed已经提交patch,JIRA会自动改状态
    Fix Released版本已经发布,JIRA会自动改状态
  • 查看Bug详情:可以添加评论,修改Bug状态,指定自己为Bug修复者,添加Bug关注者。

Bug提交、评级

在我们经过google和社区bug搜索,都确定我们遇到的bug都没有被提交过,那就可以从上图开始report a bug。

  • 开始提交:填写bug标题,按Next

    然后出来一些与我们报告的bug相类似的bug list,该list中bug有 invalid的,fix的,和正在进行的等等,先看一遍有没有一样的,没有则点击下方”No,I need to report a new bug”继续提交。

  • 填写Furtherinformation:填写内容包括bug详细现象描述、粘贴相应错误日志以及bug复现步骤等,注意条例清晰,是bug修复者可轻易复现改bug。填写完毕点击Submit Bug Report提交bug。

  • Bug单修复流程:至此一个bug就提交成功了,如果想自己改这个bug,那就直接将该bug单中的“Assigned to”设置成自己,同时调整bug status为“In Progress”。

  • Bug评级:然后等待该bug notify 社区的其他的人,大概一天左右会有人对该bug 按重要性评级。

  • Bug提交结束,开始讨论并修复bug。

Patch提交步骤

环境搭建

• 安装git客户端(包含git-review):

Linux各发行版都有Git安装包,安装比较简单:

› ubuntu/debian: 
sudo apt-get install -y git git-core gitweb git-review

› redhat/centOS: 
sudo yum install -y git gitweb git-review

注: 本文操作环境为ubuntu 16.04 TLS

Gerrit账号申请

  • 申请网址:https://www.openstack.org/join/
  • 阅读条款,点击FoundationMember
  • 填写个人基本信息:姓名, 邮箱, 性别
  • 填写你所在的组织机构、地址和设置密码
  • 点击提交 SubmitMy Application,根据提示使用邮箱名登录, 并授权:选Allow Forever 
    注意: 现在国内,由于墙的原因,在最后一步的时候,无法成功申请到账号,请自行考虑办法进行申请。如使用国外VPN等。

前期准备

  • 设置launchpad的ssh key:提交代码,官方默认使用ssh方式提交,所以先设置一下launchpad的ssh key,在linux下,使用ssh-keygen–C命令生成秘钥对,进入bug跟踪网站,点击右上角用户姓名进入个人配置页面,复制~/.ssh/id_rsa.pub的内容并粘贴至SSH keys下。

  • 使用刚注册的LaunchpadID登录OpenStack Gerrit Review网站:http://review.openstack.org,进入OpenStack代码审查页面。

  • 设置openstack 的Gerrit的SSH key: gerrit是与git配合的代码review服务器,进入setting,然后将前面第一步中的公钥sshkey复制到这里。


配置完成后,测试gerrit客户端,可以通过ssh命令测试与gerrit服务器的连接是否正确,下图的admin换成你的用户名。


• 完成开发者手册:按下图点击进入并选择相应选项,填写这个agreement,首先选个人contributor,注意下面的联系方式不能空白。以下内容填写完成后,填入“I AGREE ”, 并按Submit Agreement协议完成签署

若开发者手册未完成,会在git-review提交代码是返回如下信息:

若Primary EmailAddress与gerrit上的email没有保持一致,会报如下内部错误:

Patch提交

•  下载tacker代码:

#  mkdir openstack

#  cd openstack

#  git clone https://git.openstack.org/openstack/tacker.git

•  设置 git 全局配置:

注意:设置提交code作者的名称、邮箱,"FirstnameLastname"及your_email@youremail.com换成自己的名称和邮箱

#  git config --global user.name "FirstnameLastname"

#  git config --global user.email your_email@youremail.com

•  自动配置gerritreview:初始化git review环境,打开一个终端并转到项目目录,例如 tacker/,运行如下命令:

#  git review

•       配置commit-message编辑器:

#  git config --global  core.editor vim

配置用户名:使用git review的时候用到的认证用户名

#  git config --global  gitreview.username  GerritUserName

•       更新本地分支为master分支:在下载的代码目录中执行如下命令

#  git remote update

#  git checkout master

#  git pull --ff-only origin master

•       创建本地分支:修改patch文件中代码时,一般不会在主干master上直接修改,而是创建一个本地分支,在完全复制的一份代码中修改,在重新合入(git commit)主干分支,最后提交至gerrit(git review)。

执行如下命令创建并切换至本地ljl分支:

#  git checkout –b ljl

进入本地分支代码目录对bug代码进行修改,生成patch文件。

• 修改代码后,必要时写单元测试,并且本地跑tox测试。最好先本地跑一下tox测试,以免社区官网上Jenkins相关的TOX测试跑不过,造成反复修改代码。

tox是一个用来测试OpenStack代码的Python工具, 测试内容包括:

›  代码风格检测 (基于flake8和hacking工具)

pep8:https://www.python.org/dev/peps/pep-0008/

hacking: http://docs.openstack.org/developer/hacking/

# tox -e pep8

›  单元测试

# tox -e py27

›  代码风格和单元测试一起跑

# tox

•       提交代码至本地主干:

#  git commit –a

进入commit-message编辑页面,如下图

Commit信息编辑基本要求:

› 第一行简要说明<50字,无句号,可当做每次提交的patch标题;

›  具体说明每行<72字,最后加上各种TAG,如Closes-Bug、Partial-Bug、Related-Bug等;

›  没重新commit生成一个patch set时,每次说明中间需空一行。

›  具体可参考:https://wiki.openstack.org/wiki/GitCommitMessages

•  提交代码至gerrit review:

#  git review

执行该命令可以将更改的代码提交至gerrit。

然后到gerrit上查看如下,等待社区专家review。

至此, patch提交流程结束。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值