OpenStack社区贡献内容包括但不限于:
- 代码 Review(审查)。
- 代码 Commit(提交)。
- 社区文档翻译、编写和修改。
- 创建 Blueprints。
- 其他。
注册账号和提交 Bug
在开始贡献之前,我们先来看看 OpenStack 的代码审查的大体流程,如下图所示。
从 OpenStack 本地代码提交到合并的流程主要如下:
- 开发人员配置本地 Git 环境。
- 开发人员克隆目标项目的代码并进行更改。
- 开发人员提交本地代码到远端 Gerrit。
- OpenStack 使用 Gerrit 作为代码评审系统,使用 Jenkins 系统对代码进行自动化部署和测试,并反馈测试结果。
- 由核心评审人员给出意见,决定是否合并此次提交的代码。
基本步骤如下:
- 创建一个 Launchpad 账号(Gerrit 使用 Launchpad 账号进行认证登录)。
- 登录 Gerrit,完成其他配置。
- 签署贡献者许可协议。
- 安装本地 Git 环境。
说明:一般情况下,只有当修复某个代码/文档 Bug 或发现有 Bug 时,才需要在Launchpad 上提交 Bug 信息。
注册 Launchpad 账号
在 https://launchpad.net/ 上注册账号,如下图所示。
提交 Bug
注册成功后,登录 Launchpad,输入想要提交的 Bug 所属的 OpenStack 项目名称。比如这里的 openstack-manual(OpenStack 文档项目),如下图所示。
在图中,可以看到与该项目相关的 Bug、Blueprints 和项目概述信息等内容。点击“Report a bug”,提交一个 Bug,如下图所示。
紧接着,需要简要描述下该 Bug 的一些关键信息,如下图所示。
填写相应的Bug信息,如下图所示。
如果想要修复这个 Bug,可以将它指定给自己,如下图所示。
注意这个 Bug id 号,届时向 OpenStack 社区提交代码时需要。如此,这就是创建 Launchpad账号和提交 Bug 的流程。如果想要修复这个 Bug,那么继续往下操作。
配置账号和提交代码
配置 Gerrit 系统账号
使用在 Launchpad 上注册的账号,登录 https://review.openstack.org,如下图所示。
配置 Gerrit 公钥认证,将 SSH 的 Public Key 粘贴到此处,如下图所示。
签署 ICLA 协议,如下图所示。
在国内网络的背景下,想要向社区代码评审系统提交代码,需要一点小技巧(VPN 用户可以忽略此步骤)。首先需要登录 review.openstack.org,然后在 Settings -> HTTP Password 中生成一个 HTTP 密码,它应该是一个大小写字母加数字的随机字符串。创建一个 HTTP 协议的用户名和密码,如下图所示。
此时,账号已经创建和配置好,下面即可提交修改后的代码了。
提交代码
//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 测试提示失败等,那么你需要针对具体的问题修改提交的内容,然后再次提交,如下图所示。
查看 OpenStack 社区贡献数据
查看 OpenStack 社区贡献数据,可以访问 http://stackalytics.com,输入相应的个人名称、公司名称和 OpenStack 项目名称等进行搜索,如下图所示。
要想参与 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 相关的,如此一来,开发者便可以更有针对性地阅读邮件。
- openstack-qa@lists.openstack.org,该邮件列表是专门为 QA 测试人员讨论测试用例设计、测试配置以及测试项目、CI/CD 等技术交流而设立的。
- openstack-zh@lists.openstack.org,这是一个专门的中文邮件列表。
所有的邮件列表都可以在这里找到:https://wiki.openstack.org/wiki/Mailing_Lists。
至于如何订阅邮件,可以在 OpenStack Mailing List 页面中单击 Subscribe 链接,或者直接单击 OpenStack Dev Subscribe,如下图所示。
在 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 来了解项目的进展。如果你没有实时参与其中的讨论,那么可以有空时去查阅相关的记录。
- https://wiki.openstack.org/wiki/IRC
- https://wiki.openstack.org/wiki/UsingIRC
- https://wiki.openstack.org/wiki/Meetings
- http://eavesdrop.openstack.org/irclogs/
- https://github.com/openstack-infra/irc-meetings
- http://eavesdrop.openstack.org/meetings/
OpenStack 社区使用的 IRC 服务器地址是 irc.freenode.net,端口是6665和6666。
这里,推荐使用桌面版的一款开源免费的 IRC 客户端工具,即 HexChat,它同时支持Windows、Linux 和 OS X 系统。下载地址:http://hexchat.github.io/downloads.html。安装配置后,如下图所示。
除了以上提到的,使用 E-mail 和 IRC 方式和 OpenStack 社区交流之外,还可以参加诸如 Meetup 等会议。
网友评论