如何提交代码给OpenStack

#openstack #fuelweb

#代码提交流程 ##注册帐号

  1. 注册Launchpad帐号。
  2. 加入OpenStack基金会,根据具体情况(独立开发者或公司)选择相应的协议签署。
  3. 打开https://review.openstack.org/页面,点击Sign In,用Launchpad账户登录,然后进入Settings页面:
    • 上传SSH Public Key
    • 进入Identities页面,可增加更多开发邮箱,最终代码提交邮箱以Profile中看到的为准
    • 进入Contact Information页面,所有信息都要填写,否则提交时会报错

更多请参考:How To Contribute (OpenStack首页 > Wiki)

##开发并提交代码 参考Gerrit Workflow

基本流程如下(忽略前期配置):

  • git clone [repo]
  • git pull --ff-only origin master
  • git checkout -b TOPIC-BRANCH (这个Branch要按照规则命名,blueprintbugfix都有固定格式,如果是其它的类型就和你的reviewer协商一个分支名)
  • 修改代码
  • git commit -a
  • git review
  • 进入https://review.openstack.org/页面查看提交

如果你的reviewer给你做了修改或注释,在页面上会以Patch Set的形式显示出来,你自己也可以再修改,但再次提交时要给git commit加上--amend参数,表示这是一次修改,而不是一个新的提交;

万一不小心忘了加--amend参数,且执行了git review传上去了,那么:

  1. 进入该新提交的页面,点击Abandoned按钮,把它废弃掉;
  2. 执行git reset HEAD^ && git commit -a --amend && git review,废弃本地最新的错误commit,再重新用--amend参数commit

#Fuel-Web开发 参考Fuel Development Environment,按照文档流程安装配置环境,直到3.4.3,用Fake Mode启动,然后通过浏览器打开。

如果启动有问题,可能是依赖没更新,参考Running Nailgun in Fake Mode,最好每次开发前都先更新一下依赖。

##Fuel-Web汉化 因汉化还没全部完成,官方把多语言切换隐藏了,去除这里hide标记后即可在首页的右下角看到en/cn切换链接。

Fuel-Web使用i18next库来翻译,资源文件是translation.json,具体转换代码格式参考官网代码即可。

有些地方会使用复数,比如1 node10 nodes,i18next本身支持复数的处理,见官方文档simple plural部分。

汉化Reviwer:Vitaly Kramskikh vkramskikh@mirantis.com,IRC:freenode.net,Channel:#fuel,NickName:vk

编码规范:

  • use words describing placement of strings like “button”, “title”, “summary”, “description”, “label” and place them at the end of key (like “apply_button”, “cluster_description”, etc.). One-word strings may look better without any of these suffixes.
  • do NOT use shortcuts (“bt” instead of “button”, “descr” instead of “description”, etc.)
  • nest keys if it makes sense, for example, if there is a few values for statuses, etc.
  • if some keys are used in a few places (for example, in utils), move them to “common.*” namespace

Troubleshooting

Permission denied (publickey)

执行git review时可能会报该错误,使用如下命令调试:

ssh -vv -p 29418 [username]@review.openstack.org
ssh-add
ssh -vv -p 29418 [username]@review.openstack.org

参考: