• 新规:续航150公里以下新能源车取消补贴 2019-10-11
  • 法国革命时代,女人流行穿什么 2019-10-11
  • 黑龙江省县(市、区)委统战部长培训班举办 2019-10-06
  • “夏季第一瓜”竟是它! 2019-10-06
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 极速飞艇怎么看走势:向OpenStack贡献代码的分步说明

    来源:本网整理

    彩票双色球历史开奖结果 www.s9h6.com OpenStack 是一种基础架构即服务 (IaaS) 云计算项目,该项目是根据 Apache 许可证的条款发布的免费开源软件。该项目由 OpenStack Foundation 管理,该机构于 2012 年 9 月建立,是一个实体型非营利组织,旨在促进、?;ず褪谌?OpenStack 软件及其社区。

    资源通过一个仪表板来管理,该仪表板向管理员提供了控制权,并通过一个 Web 接口为用户提供了配置资源的权利。本文将介绍如何设置帐户、设置开发环境以及如何开始为 OpenStack 做贡献。

    第 1 步:通过在线注册和密钥配置来设置帐户

    1. 设置您的 Launchpad 帐户。Launchpad 是 OpenStack 用来托管其所有项目的位置。请访问 Launchpad 登录页面,使用您的电子邮件地址进行注册,并为自己选择一个便于记忆的 Launchpad ID。然后访问 https://launchpad.net/~LaunchpadID,设置您的 OpenPGP 密钥,并使用该页上的说明上传您的 SSH 公钥。例如,我的 Launchpad id 是 houshengbo,因此我将访问 https://launchpad.net/~houshengbo,如图 1 所示。

      图 1. 设置 OpenPGP 密钥
      使用 id houshengbo 的 Launchpad 示例

    2. 为 Gerrit 设置您的 SSH 帐户。OpenStack 应用了一个代码评审过程来保证代码质量。请访问 OpenStack 代码审查 页面,并使用您的 Launchpad 帐户进行登录。然后访问 https://review.openstack.org/#/settings/ssh-keys 并上传您的 SSH 公钥。

      图 2. 上传 SSH 公钥
      上传 SSH 公钥

    第 2 步:签署 CLA 协议

    1. 请加入 OpenStack Foundation(如果您尚未加入)。使用您计划用于贡献代码的电子邮件地址。foundation profile 中的主要电子邮件地址需要与您稍后在 Gerrit 联系信息中设置的首选电子邮件相匹配。
    2. 请访问 Code Review 页面。单击位于该页面右上角的 Sign In 链接。使用您的 Launchpad ID 登录 Launchpad。
    3. 除非您是美国政府雇员(参见以下内容),否则请同意 Individual Contributor License Agreement 并提供联系信息。您的所有姓名和电子邮件地址都是公开的。如果需要的话,可以稍后 更新 此联系信息,但确保主要电子邮件地址始终与为您的 OpenStack Foundation 会员身份设置的电子邮件地址相匹配。
    4. 加入 OpenStack Contributors 组。需要以会员身份提交代码更改。

    如果您以个人贡献者的身份工作,那么执行上述步骤就足够了。如果您代表公司或美国政府工作,那么您可能需要关注其他一些内部审批过程,这些过程因公司而异。

    第 3 步:设置本地开发环境

    1. 设置 Eclipse 环境:
      1. 安装附带 python 的 Ubuntu 11.10 或 11.10+。
      2. 安装 git:sudo apt-get install git。
      3. 安装 Eclipse。
      4. 安装 Eclipse 的 PyDev 插件。
        1. 在 Eclipse 窗口上,单击 Help > Install New Software。
        2. 配置 Eclipse 的 python interpreter。在 Work with 字段中,输入 //pydev.org/updates 并单击 Add。
        3. 选中 PyDev。
        4. 单击 Next,直到您找到 Review Licences 窗口。接受许可条款并单击 Finish。
      5. 安装 Eclipse 的 EGit 插件。
        1. 在 Eclipse 窗口上,单击 Help > Install New Software。
        2. 在 Work with 字段中,输入 //download.eclipse.org/egit/updates 并单击 Add。
        3. 选中位于 Eclipse Git Team Provider 下面的 Eclipse EGit。
        4. 单击 Next,直到您找到 Review Licences 窗口。接受许可条款并单击 Finish。
    2. 设置代码库。
      • 使用 devstack:
        1. 打开一个终端,转到目标目录,并运行以下命令获得 devstack 代码:
          git clone git://github.com/openstack-dev/devstack.git

        2. 在刚刚创建的 devstack 目录下创建一个名为 localrc 的文件??梢栽?DevStack 网站上查找关于如何 配置 localrc 的信息。
        3. 运行 ./stack.sh。默认工作目录是 /opt/stack,可以手动更改它。当初次运行 devstack 获得成功之后,可以在 /opt/stack 下找到所有代码。
      • 另一个方法是下载特定项目,而不是克隆所有项目。以 Keystone 项目为例:
        1. 打开一个终端,转到目标目录(例如,/opt/stack)并运行以下命令以获得 keystone 代码:
          git clone https://github.com/openstack/keystone.git

        2. 将项目导入 Eclipse:运行 Eclipse 并将工作区设置为保存所有项目 (/opt/stack) 的目录。
        3. 创建 PyDev 项目:单击 File > New > PyDev project。使其名称与该项目相同,如 keystone,然后单击 Finish。
        4. 将该项目与 Egit 同步:在 Eclipse 中,右键单击该项目 (keystone),单击 Team > Share project,然后单击 Next 和 Finish。
        5. 完成上述步骤之后,应该会在 Eclipse 中看到位于您的项目名称后面的 [keystone master]。

    运行单元测试

    • 对某个项目运行所有单元测试:
      1. 打开一个终端并转到项目目录,例如 keystone。
      2. 运行 ./run_tests.sh 命令。当询问您是否想创建一个虚拟环境时,选择 Y 或 N。
    • 测试一个示例:
      1. 打开一个终端并转到项目目录,例如 keystone。
      2. 运行 ./run_tests.sh <file path> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py。
    • 测试一个示例:
      1. 打开一个终端并转到项目目录,例如 keystone。
      2. 运行 ./run_tests.sh <file path>:<class name> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py:CommonHelperTests。
    • 测试一个方法:
      1. 打开一个终端并转到项目目录,例如 keystone。
      2. 运行 ./run_tests.sh <file path>:<class name>.<method name> 命令,例如 ./run_tests.sh /opt/stack/keystone/tests/test_backend.py:CommonHelperTests.test_format_helper_raises_malformed_on_incomplete_format。

    运行 OpenStack 服务

    • 运行 Devstack 的所有服务:
      1. 打开一个终端并转到 devstack 目录。
      2. 运行 ./stack.sh 命令。在 localrc 中,指定要运行的服务,例如 ENABLED_SERVICES=key,c-api,c-vol,c-sch,mysql,rabbit。
      3. 运行 ./unstack.sh 关闭所有服务。
      4. 首次运行 ./stack.sh 获得成功之后,您还可以运行 ./rejoin-stack.sh 来运行所有指定的服务。
    • 在 Eclipse 中运行服务。以 Keystone 为例:
      1. 在 Eclipse 中设置 keystone 的调试配置。右键单击脚本 keystone—bin 下的所有内容,然后单击 Debug as > Debug Configurations,如图 3 所示。

        图 3. 调试配置
        调试配置

      2. 设置调试配置。单击 Arguments 选项卡,选择 Other 作为工作目录,然后输入 ${workspace_loc:keystone},如图 4 和图 5 所示。

        图 4. Main 选项卡配置
        Main 选项卡


        图 5. Arguments 选项卡配置
        Arguments 选项卡配置

      3. 启动 Keystone:单击 Debug Configuration 窗口上的 Debug 按钮,或从 Debug/Run 下拉工具栏按钮中运行它,如图 6 所示。

        图 6. 启动 Keystone 服务
        启动 Keystone 服务

    第 4 步:设置本地计算机配置

    • 设置 git 全局配置:
      1. 打开一个终端。
      2. 运行 git config --global user.name "Firstname Lastname" 命令。
      3. 运行 git config --global user.email "[email protected]" 命令。
    • 安装 git-review 工具:
      • 对于 Ubuntu 12.04 或更高版本,在一个终端中运行 sudo apt-get install git-review 命令。
      • 对于 Ubunu 12.04 之前的版本,则运行 sudo pip install git-review 命令。
    • 配置您的项目以了解 Gerrit:
      1. 打开一个终端并转到项目目录,例如 keystone。
      2. 运行 git review -s 命令。系统会要求您输入您的 gerrit 用户名。请键入您的 Launchpad id 并按下 Enter 键。

    第 5 步:OpenStack 工作流程演示

    如果您发现了一个 OpenStack 问题,请将它注册为一个 bug。如果想添加新功能,那么请将它注册为蓝图。您将要添加的修改应位于分支版本而不是主版本中。此外,不要在一个分支版本中混合多个 bug 修复或蓝图开发。下面的工作流程显示了 Keystone 中 bug 修复的一个示例。

    1. 提交 Keystone 的 bug:
      1. 访问 https://launchpad.net/keystone。
      2. 单击 Report a bug,然后输入概要信息和所需的信息。
      3. 单击 Submit bug report 按钮。此 bug 具有一个链接:https://bugs.launchpad.net/keystone/+bug/1087674 和一个 bug 号:1087674。
      4. 在 Assigned to 列中将这个 bug 分配给你自己。

      图 7. 提交 Keystone 的 bug
      提交 Keystone 的 bug

    2. 在 keystone 中为此 bug 创建一个分支(分支名称 Bug1087674):
      1. 打开一个终端并转到 keystone 目录。
      2. 通过 git checkout master 确保 keystone 位于主版本中。
      3. 运行 git checkout -b Bug1087674 命令。
    3. 在分支 Bug1087674 中修改 keystone 代码。
    4. 将该代码提交给 Gerrit:
      1. 打开一个终端并转到 keystone 目录。
      2. 运行 git commit -a 命令。
      3. 输入一些注释。第一段应该是一句话的简介;第二段可以是详细说明(可?。?;如果此分支修复一个 bug 或一个蓝图,则添加 Fixes Bug1087674 或 Blueprint XXXX 作为最后一段。
      4. 运行 ctrl+o 命令,按下 Enter 键,然后运行 ctrl+x。
      5. 运行 git review。
    5. 检查提交的修补程序:
      1. 转到 https://review.openstack.org 并使用您的 Launchpad 帐户登录。
      2. 从顶部水平导航器中,单击 My > Changes,然后您可以找到您已提交的修补程序。
      3. 在此演示中,链接为 https://review.openstack.org/#/c/17673/。任何用户都可以查看此修补程序。任何开发人员都可以给出注释。

      图 8. 已提交的修补程序的 Review 页面
      已提交的修补程序的 Review 页面

    通常,这是提交修补程序的过程。但是如果某些开发人员添加了注释并且您决定更改此分支,又该如何做呢?下面是一个选项:

    1. 打开一个终端并转到 keystone 目录。
    2. 通过 git checkout Bug1087674 转到分支 Bug1087674。
    3. 对此分支进行进一步修改。
    4. 转到 keystone 目录。
    5. 运行 git commit -a –amend 命令。(不要运行 git commit -a,否则会有多个注释提交给 Gerrit,建议不要这样做。)
    6. 可能的话,请修改注释。
    7. 运行 ctrl+o 命令,然后按 Enter 键并运行 ctrl+x。
    8. 运行 git review。

    第二次提交此修补程序之后,链接 https://review.openstack.org/#/c/17673/ 中有两个修补程序集,如图 9 所示。


    图 9. 修补程序集的历史记录
    修补程序集的历史记录

    此外,如果在您使用分支 Bug1087674 时主分支进行了更改,又会怎样呢?下面是您可以执行的操作:

    1. 打开一个终端,并通过 git checkout master 转到主分支。
    2. 使用 git pull origin master 更新该代码。
    3. 通过 git checkout Bug1087674 切换回此分支。
    4. 通过 git rebase -i master 重构该代码。
    5. 如果没有冲突,则运行 git commit -a –amend 命令并运行 git review。
    6. 如果发生冲突,那么终端会显示有冲突的文件。
    7. 您还可以在 Eclipse 中查找冲突,因为有冲突的文件都标有红色标记。
    8. 手动修复这些冲突。
    9. 继续重构,git rebase —continue。
    10. 重构成功之后,运行 git commit -a –amend 命令和 git review。

  • 本文相关:
  • Linux应用层的时间编程
  • Git一个开源的分布式版本控制软件使用指南
  • 为Firefox编写一个基础浏览器扩展
  • Scala语言给我们带来的关于编程思想的新的思考
  • Scala语言简洁的语法应用示例
  • 以编程方式将第三方的代码集成到您的Android UI
  • Selenium一个强大的基于浏览器的开源自动化测试工具
  • Rational产品设计中考虑事项、动机和最佳实践
  • 基于RTC构建下一代协作平台Jazz上的软件开发环境
  • 基于Apache Maven 3的项目构建的基本概念和方法
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 彩票双色球历史开奖结果 - 频道导航
    Copyright © 2017 彩票双色球历史开奖结果 www.s9h6.com All Rights Reserved
  • 新规:续航150公里以下新能源车取消补贴 2019-10-11
  • 法国革命时代,女人流行穿什么 2019-10-11
  • 黑龙江省县(市、区)委统战部长培训班举办 2019-10-06
  • “夏季第一瓜”竟是它! 2019-10-06
  • 《阿古顿巴》藏语版在藏语卫视首播 2019-09-06
  • 晋中市“三同步”推动互联网治理创新 2019-08-27
  • 法媒:研究称美国人常用药物或增加抑郁风险 2019-08-27
  • 宝贝是地名,你能想到这么浪漫的地名在哪儿吗? 2019-08-15
  • 何树山副省长到方圆机电调研指导工作 2019-08-15
  • 冰球打架规则 抓特法 瑞丰秒速时时彩网站 竞彩足球即时指数 金满贯娱乐场 双色球128蓝球推存 下载广西十一选五开奖结果 时时彩走势图软件最新版 2元彩票京券 新疆25选7号码统计 3d组三组六是什么意思 一波中特030期 上海时时计划软件手机版 赌博必赢定律 龙虎和精准计划软件