开发者社区> 云物互联> 正文

Openstack贡献者须知 2 — 社区工作运作 & 代码贡献流程

简介: 目录 目录 前文列表 订阅邮件列表 Mailing Lists 社区工作运作流程 Openstack 代码贡献流程 PEP8 Python编程风格 查阅相关资源 前文列表 Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议 订阅邮件列表 Mailing Lists 订阅邮件列表之后,你可以在邮件中提出问题并获得帮助。
+关注继续查看

目录

前文列表

Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议

订阅邮件列表 Mailing Lists

订阅邮件列表之后,你可以在邮件中提出问题并获得帮助。如果你有问题要提出可以直接发送邮件到相关版块的管理员那里去,社区的管理员会非常专业的回答你的问题。

订阅邮件列表点这里(使用Launchpad Account Login)

对开发者而言会更加关注下面两个 Mailing Lists
• General List: openstack@lists.openstack.org

这里写图片描述

• Future Development: openstack-dev@lists.openstack.org

这里写图片描述

除此之外还有
• Announcements: openstack-announce@lists.openstack.org

• OpenStack Operation: openstack-operations@lists.openstack.org

在订阅了邮件列表之后,你的邮箱会不定期的收到非常对象Openstack资讯邮件,对及时了解Openstack的动态非常有帮助:
这里写图片描述

社区工作运作流程

Launchpad 上 Openstack 项目工作的运作流程。
Step1. Bugs 的处理流程

There are 4 key tasks with regards to bugs that anyone can do:

  • Confirm new bugs: A “New” bug can be marked “Confirmed” once it has been reproduced and is thus confirmed as genuine.

  • Solve inconsistencies: Make sure bugs are Confirmed, and if assigned that they are marked “In Progress”

  • Review incomplete bugs: See if information that caused them to be marked “Incomplete” has been provided, determine if more information is required and provide reminders to the bug reporter if they haven’t responded after 2-4 weeks

  • Review stale In Progress bugs: Work with assignee of bugs to determine if the bug is still being worked on, if not, unassign them and mark them back to Confirmed or Triaged.

Step2. Blueprints 的处理流程
Many OpenStack projects teams have a -specs respository which is used to hold approved design specifications for additions and changes to the project team’s code repositories.

Step3. Spec + Blueprints 的生命周期
For projects using a -specs repository (like Nova, Neutron, Oslo, Ceilometer…), you should follow this process:

  • Register your blueprint in Launchpad
  • Upload a design specification in the “specs/” folder in $PROJECT-specs
  • Project drivers will approve blueprint by:
    • Setting priority
    • Setting a target milestone, based on the assignee proposal
  • Assignee sets implementation status to “Implemented”

Step4. Blueprints 独立的生命周期
Projects not using a -specs repository (Horizon, Trove…), you should follow this process:

  • Register your blueprint in Launchpad
    • Describe the feature summarily in the blueprint itself
    • Link to another document (using the specification link) if you have more
    • Set yourself as assignee
    • Set target milestone to indicate when you expect the work to land
  • Project drivers will approve blueprint by:
    • Setting priority
  • Assignee sets implementation status to “Implemented”

Openstack 代码贡献流程

这里写图片描述

Step1. 签署ICLA
点这里,注意一定要把信息填全,特别是https://review.openstack.org/#/settings/contact页面的信息。

Step2. 上传自己的SSH Key
需要通过 SSH 向 Gerrit push 代码

Step1 & Step2 看可以参考Openstack贡献者须知 — OpenPGP/SSH/CLA贡献者协议

Step3. 配置Git Bash(Ubuntu 16)

  • Install Git
sudo apt-get install git
  • Let git know your email address
git config --global user.name "guiju fan"
git config --global user.email "fan_guiju@xxx.com" #注意跟Gerrit账户一致
  • Check your Git Configuration
git config --list
  • Check your git config file)
cat $HOME/.gitconfig
  • Install git review)
apt-get install git-review

参考文档http://www.mediawiki.org/wiki/Gerrit/git-review

Step4. 下载 Project 代码
使用 git clone 将最新的代码 nova/master 从服务器上拉到local(以nova为例)

git clone git://github.com/openstack/nova.git

Step5. 让 Project 感知代码审核工具 Gerrit
需要先确保能使用你的 SSH key 登录Gerrit,建议使用上述进行配置的 git 环境变量的用户(EG. fan__guiju@xxx.com)来操作。否则,会提示输入Gerrit用户名.

cd nova
git review -s

成功后,会在 nova 目录下生成一个 .gitreview 目录

Step6. 确保下载的 Project 代码是最新

git checkout master
git pull

Step7. 新建 Projecy 分支
1. 如果操作类型是 blueprint,那分支名应该是bp/BP-NAME,其中 BP-NAME 是在launchpad 上 的 bp名称。
2. 如果操作类型是是修复 bug,那么分支名是bug/BUG-NUMBER,其中 BUG-NUMBER 应该可以在 Openstack Bugs 页面上找到:

新建分支后再使用 git brance 指令确定分支切换到了 BRANTCH-NAME

git brance
git checkout -b BRANTCH-NAME

Step8. 提交代码

  • 添加提交信息
    在单独的一行中填写 Summary(小于50个字符),空隔一行,然后在第二段进行详细的描述。如果是实现 blueprint 或修复了 bug,需注明:
    blueprint BP-NAME
    bug BUG-NUMBER
Adds some summary less than 50 characters   

...Long multiline description of the change...   

Implements: blueprint authentication   
Fixes: bug #123456   
  • 通过进行代码的单元测试(Unit tests)后提交代码
git commit -a  
  • 申请Gerrit review 代码
git review  #通过Gerrit审核提交的代码

Step9. Review code
申请 review 后,代码审核工程师就可以进行代码审核。你的提交会出现在https://review.openstack.org 页面上,可以查看提交的状态和信息。在Gerrit审核代码的过程中,还会调用 Jenkins 进行自动 Check Queue。

如果在 Jenkins 中报出了 failure,可以查看日志来进行排错。如果确认不是自己的 patch 导致,可以在 comment 里留 recheck no bug,重新让 Jenkins 进行自动化 Test 。

Step10. 修改
如果代码审核没有成功的话,Gerrit会返回并提示需要修改的代码,在修改完后再次提交时一定要直接使用已存在的Change-Id。

这里写图片描述

git commit -a --amend
git review

Step11. 最后
在 Gerrit 的代码审核和 Jenkins 的 Check Queue 通过之后,项目会交由 Jenkin s持续集成到代码库中。

PEP8 Python编程风格

Read http://www.python.org/dev/peps/pep-0008/

查阅相关资源

OpenStack Documents:
https://wiki.openstack.org/wiki/Document

Developer document:
https://docs.openstack.org/developer/<projectname>:

Release Progress
http://status.openstack.org/release/

OpenStack Blogs
http://planet.openstack.org/
Sebastien Han(eNovance)
http://www.sebastien-han.fr/blog/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云openapi签名实现代码(基于Python)
部分开发者在接触阿里云openAPi调用的时候,Signature的构造和生成一直都是一只拦路虎,本文中将基于Python,和点播的APi:getPlayAuth 实现签名的构造,仅供大家参考。
908 0
分享实录 | 阿里巴巴自研代码管理平台技术解密
近日,阿里巴巴旗下企业级一站式DevOps平台——阿里云·云效正式开启公测,为了让广大开发者更好地了解“新云效”,《云效说码》栏目特别策划了《为云研发而生 解密云效公测版专场》系列分享,邀请了5位阿里巴巴技术专家通过视频直播的方式与大家在线交流,分享云效产品的亮点和技术优势。
3239 0
teachable-machine:探索机器学习如何工作,浏览器中实时浏览
教学机器是一个实验,让所有人都非常方便的探索机器学习,在浏览器中实时浏览,不需要编程。学习更多实验,然后亲自尝试它 访问:https://teachablemachine.
872 0
借助 Resharper 和 StyleCop 让代码更整洁
一:工具安装 Resharper 和 StyleCop 必须安装。 Resharper 的配置文件如下:Resharper.zip 请按如下步骤导入, 1: 2: 3:   StyleCope 的配置文件如下:Settings.zip 请直接包含到项目中,如: (PS:从源码服务器上获取的解决方案,Leader 已经包含)。
782 0
[Android]Android焦点流程代码分析
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/7286503.html 通过View的View::focusSearch进行焦点搜索对应方向上的下一个可以获取焦点的View: public View focus...
1067 0
java面试题:写代码使得分别出现StackOverflowError和OutOfMemoryError
今天做了个笔试,这是其中的一道题目:写代码使得分别出现StackOverflowError和OutOfMemoryError。 1.StackOverflowError   堆栈溢出错误一般是递归调用嘛。
761 0
阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量
阿里开源自用 OpenJDK 版本,Java 社区迎来中国力量 3 月 21 日,阿里巴巴将宣布开源 Alibaba Dragonwell。届时,开发者可通过阿里云开发者中心及 Github 社区下载使用。
10969 0
+关注
云物互联
OpenStack Developer, Opensource Lover :- )
264
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载