美文网首页BNU北师大校友会
如何贡献 OpenStack 社区

如何贡献 OpenStack 社区

作者: 燕京博士 | 来源:发表于2018-03-22 21:07 被阅读400次

OpenStack社区贡献内容包括但不限于:

  • 代码 Review(审查)。
  • 代码 Commit(提交)。
  • 社区文档翻译、编写和修改。
  • 创建 Blueprints。
  • 其他。

注册账号和提交 Bug

在开始贡献之前,我们先来看看 OpenStack 的代码审查的大体流程,如下图所示。

image

从 OpenStack 本地代码提交到合并的流程主要如下:

  1. 开发人员配置本地 Git 环境。
  2. 开发人员克隆目标项目的代码并进行更改。
  3. 开发人员提交本地代码到远端 Gerrit。
  4. OpenStack 使用 Gerrit 作为代码评审系统,使用 Jenkins 系统对代码进行自动化部署和测试,并反馈测试结果。
  5. 由核心评审人员给出意见,决定是否合并此次提交的代码。

基本步骤如下:

  1. 创建一个 Launchpad 账号(Gerrit 使用 Launchpad 账号进行认证登录)。
  2. 登录 Gerrit,完成其他配置。
  3. 签署贡献者许可协议。
  4. 安装本地 Git 环境。

说明:一般情况下,只有当修复某个代码/文档 Bug 或发现有 Bug 时,才需要在Launchpad 上提交 Bug 信息。

注册 Launchpad 账号

https://launchpad.net/ 上注册账号,如下图所示。

image

提交 Bug

注册成功后,登录 Launchpad,输入想要提交的 Bug 所属的 OpenStack 项目名称。比如这里的 openstack-manual(OpenStack 文档项目),如下图所示。

image

在图中,可以看到与该项目相关的 Bug、Blueprints 和项目概述信息等内容。点击“Report a bug”,提交一个 Bug,如下图所示。

image

紧接着,需要简要描述下该 Bug 的一些关键信息,如下图所示。

image

填写相应的Bug信息,如下图所示。

image

如果想要修复这个 Bug,可以将它指定给自己,如下图所示。

image

注意这个 Bug id 号,届时向 OpenStack 社区提交代码时需要。如此,这就是创建 Launchpad账号和提交 Bug 的流程。如果想要修复这个 Bug,那么继续往下操作。

配置账号和提交代码

配置 Gerrit 系统账号

使用在 Launchpad 上注册的账号,登录 https://review.openstack.org,如下图所示。

image

配置 Gerrit 公钥认证,将 SSH 的 Public Key 粘贴到此处,如下图所示。

image

签署 ICLA 协议,如下图所示。

image

在国内网络的背景下,想要向社区代码评审系统提交代码,需要一点小技巧(VPN 用户可以忽略此步骤)。首先需要登录 review.openstack.org,然后在 Settings -> HTTP Password 中生成一个 HTTP 密码,它应该是一个大小写字母加数字的随机字符串。创建一个 HTTP 协议的用户名和密码,如下图所示。

image

此时,账号已经创建和配置好,下面即可提交修改后的代码了。

提交代码

//clone该Bug所属的项目
#git clone https://git.openstack.org/openstack/openstack-manuals 

//格式为bug/bug id
# git checkout -b bug/1575714
Switched to a new branch 'bug/1575714'

//修改Bug文件
# vim doc/contributor-guide/source/api-guides.rst

//配置git邮件地址和用户名
# git config --global user.email xxxx@xxxx.com
# git config --global user.name "xxxx"

//添加本地文件
# git add .

//填写提交信息,格式和内容如下
# git commit             
Fix OpenStack/api-site git repo url

Closes-Bug: #1575714

//添加远程地址
# git remote add gerrit\
ssh://xxxx@review.openstack.org:29418/openstack/openstack-manuals.git
# git remote set-url gerrit\
https://http_username:http_password@review.openstack.org/openstack/openstack-manuals.git

//提交代码
# git review
Your change was committed before the commit hook was installed.
Amending the commit to add a Gerrit change id.
remote: Processing changes: new: 1, refs: 1, done    
remote: 
remote: New Changes:
remote:   https://review.openstack.org/310508 Fix openstack/api-site git repo url
remote: 
To https://xxxx:xxxx @review.openstack.org/openstack/openstack-manuals.git
 * [new branch]      HEAD -> refs/publish/master/bug/1575714

如果需要对之前提交的内容再次进行修改(针对同一个 change-id),则执行如下命令。

# git add .
# git commit --amend
# git review

查看评审状态

向社区提交代码/文档,需要通过该项目两个 Core(核心开发者)的+2评分,才会被合并到GitHub 代码仓库中,代表此次提交成功。反之,如果有人给出-1、-2的评分或 Jenkins 测试提示失败等,那么你需要针对具体的问题修改提交的内容,然后再次提交,如下图所示。

image

查看 OpenStack 社区贡献数据

查看 OpenStack 社区贡献数据,可以访问 http://stackalytics.com,输入相应的个人名称、公司名称和 OpenStack 项目名称等进行搜索,如下图所示。

image

要想参与 OpenStack 社区沟通交流,一般最常用的方式是使用 E-mail 和 IRC(Internet Relay Chat,互联网中继聊天,理解为国内的 QQ 即可)。需要注意的是,由于中国时区和北美、欧洲时区存在10个小时以上的差异,使用 IRC 实时聊天工具可能存在沟通障碍问题。下面阐述如何通过这两种方式进行沟通交流。

通过邮件方式交流

  • openstack@lists.openstack.org,该邮件列表 OpenStack 社区通用,一般寻求帮助或者发布信息都可以通过该邮件列表沟通。
  • openstack-announce@lists.openstack.org,该邮件列表专门用于接收 OpenStack 发布团队和 openstack 安全团队重要通告消息,比如有关 OpenStack 的发布,以及 OpenStack 解决了哪些安全漏洞等信息。
  • openstack-operators@lists.openstack.org,该邮件列表是为 OpenStack 运维人员的讨论话题而建立的一个平台,各公司运维人员可以在该邮件列表中交流关于 OpenStack 安装、部署、运维等方面的内容。
  • openstack-dev@lists.openstack.org,该邮件列表是为 OpenStack 开发者交流技术而设立的,对开发者相当重要。

由于 OpenStack 项目众多,为了防止邮件泛滥,通常在发送邮件时会在标题上加上项目名称作为前缀来进行区别。比如“[nova]”,表示这个邮件内容是与 Nova 相关的,如此一来,开发者便可以更有针对性地阅读邮件。

所有的邮件列表都可以在这里找到:https://wiki.openstack.org/wiki/Mailing_Lists

至于如何订阅邮件,可以在 OpenStack Mailing List 页面中单击 Subscribe 链接,或者直接单击 OpenStack Dev Subscribe,如下图所示。

image

在 OpenStack Dev Subscribe 页面中输入接收邮件的邮箱地址和名字(可选),即可订阅成功。

比如,要想在 openstack-dev 邮件中提问题,只需要编辑邮件发送到 openstack-dev@ lists.openstack.org 邮箱即可,接下来需要做的就是等待别人回答你的问题,并给予积极的回应。

通过 IRC 方式交流

IRC 介绍

IRC(Internet Relay Chat)是一种实时聊天工具。由于使用邮件无法做到与社区实时互动,所以邮件更适合抛出一个问题或想法,系统性地阐述观点,并不需要立即得到他人的帮助、建议和回复等场景。

对于社区在线即时交互,OpenStack 社区推荐使用 IRC,所有的 OpenStack IRC 聊天室都可以在这里找到:https://wiki.openstack.org/wiki/IRC。比如 #openstack-dev 频道用于讨论开发过程中遇到的问题,#openstack-keystone 则用于讨论有关 Keystone 的问题。

IRC频道和项目例会固然很好,但它们也有局限性,需要考虑到他人因各种原因而未在线的问题,还有时区问题,所以邮件可以起到一个很好的弥补作用。IRC 工具种类繁多,既有 PC 端也有移动端的工具。下面是一些常用且开源的 IRC 工具。

PC 客户端工具:

  • Hexchat Free (Windows XP/Vista/7/8) (Linux)(推荐)
  • Colloquy Free (Mac OS X 10.7)
  • XChat Aqua/Azure (OS X 10-10.6)
  • XChat Linux Free
  • Irssi Free (Linux, FreeBSD, Microsoft Windows, Mac OS X)
  • KVirc Free (Linux, Unix, Mac OS, Windows)
  • Chatzilla Free (Firefox 3.5-20)

移动客户端工具:

  • IRChon Free (iOS)(兼容iPod touch, iPad。需要iOS 2.2.1及以上版本)
  • AndChat Free (Android)
  • YAAIC Free (Android (beta))
  • AndroIRC Free (Android)

OpenStack IRC

OpenStack 各项目例会的安排都列在 https://wiki.openstack.org/wiki/Meetings 上。对于OpenStack 开发者来说,参加项目例会是很重要的。项目例会一般由该项目的 PTL(项目主管)主持,鼓励该项目的所有开发者参加并讨论会议议题。项目例会是 OpenStack 开发者融入社区相当好的一个机会。

OpenStack 的 IRC 会议都有 Log 记录,可以通过 IRC 来了解项目的进展。如果你没有实时参与其中的讨论,那么可以有空时去查阅相关的记录。

OpenStack 社区使用的 IRC 服务器地址是 irc.freenode.net,端口是6665和6666。

这里,推荐使用桌面版的一款开源免费的 IRC 客户端工具,即 HexChat,它同时支持Windows、Linux 和 OS X 系统。下载地址:http://hexchat.github.io/downloads.html。安装配置后,如下图所示。

image

除了以上提到的,使用 E-mail 和 IRC 方式和 OpenStack 社区交流之外,还可以参加诸如 Meetup 等会议。

相关文章

网友评论

    本文标题:如何贡献 OpenStack 社区

    本文链接:https://www.haomeiwen.com/subject/gjyzqftx.html