第01课:如何贡献

第01课:如何贡献 OpenStack 社区

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

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

注册账号和提交 Bug

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

从 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/ 上注册账号,如下图所示。

提交 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 项目名称等进行搜索,如下图所示。

上一篇
下一篇
目录