发布于 2015-12-05 11:12:45 | 189 次阅读 | 评论: 0 | 来源: 网络整理

提交补丁

  • 你已经修改了一个bug,或增加了一个功能,然后想要提交它。真棒!
  • 我们使用 Apache Review Board代码审查工具进行代码审查。如果你还没有帐户,则需要创建一个 (它和您的 Apache JIRA 帐户是不同的)。
  • 每个包含了要修改代码库的JIRA都要创建一个代码审查请求。

编码之前

  1. 通过Git,把代码从Apache的资源库上check out下来。教程请戳这里
  2. 加入开发,问题跟踪,审查,搭建的邮件列表,请发送邮件至相应邮箱:dev-subscribe@mesos.apache.org, issues-subscribe@mesos.apache.org, reviews-subscribe@mesos.apache.org 和 builds-subscribe@mesos.apache.org。
  3. JIRA上找一条你想解决的,并且还未分派的JIRA记录,或者你自己创建的记录(你需要JIRA账号,见下文)
    1. 这条JIRA记录也许是一个bug反馈(可能是你遇到并上报的一个bug. 比如在试图编译的时候碰到的bug.)或是一个新增的功能。
    2. 相对于仅仅"Open"来说,把问题标记为"Accepted"更好。如果一个问题被接受了,这表示至少有个Mesos开发者认为,这个问题提出的想法后期值得去做。
    3. 标记为"新手"的标签的问题适用于"启动器"项目。
  4. 给自己分派JIRA,你需要如下步骤:
    1. 一个Apache JIRA用户账户(点击这里注册
    2. 需要让一位Mesos提交者(发邮件到dev@mesos.apache.org)把你添加到Mesos"贡献者"列表里,这样才能被分配(或分配给自己)JIRA问题。
  5. 制定计划来解决问题,建议在 JIRA 的评论区写计划
  6. 找个导师一起完成补丁。导师就是Mesos提交者,他和你一起干活,对你提议的设计给予反馈,最终把你的修改提交到Mesos代码树。
    1. 可以通过发邮件给dev邮件列表(带上JIRA问题链接)来找个导师。也可以尝试给JIRA问题添加个评论来寻找。
    2. 还可以在IRC里问开发者们来找个导师(/documentation/latest/in the mesos channel on Freenode)。在这里可以找到当前的提交者列表:已经做过你要修改的组件的开发者可能会适合做导师。

创建补丁

  1. 创建一个或多个测试用例来验证bug或功能(Mesos团队使用测试驱动开发)。在开始编码之前,确保这些测试用例都失败。
    1. 测试 patterns页面提供了一些写测试用例的建议。
  2. 确保代码的修改(不管你用哪个IDE/编辑器)真正地修复了bug或实现了功能。
    1. 在开始前,请阅读 Mesos C ++样式 指南。建议使用 git pre-commit hook (support/hooks/pre-commit) 自动检查样式错误。请参阅hook 脚本的使用说明。
    2. 大部分你做的更改应该是BASE_MESOS_DIR里的文件
    3. Mesos 内部根目录:./bootstrap(只有从git 资源库上编译才会用到)
    4. 如果做编译的话,我们不建议你从源目录编译,建议这样:
      1. 在Mesos 内部根目录: mkdir build && cd build
      2. ../configure
      3. make
      4. 现在在你创建的目录里,通过编译,生成了所有的文件。而通过源目录src编译,文件则会散落各处。前者的编译方式更清爽,并易于清理,比如你想通过configure 和make命令来避免一些文件生成的时候。你还可以重置编译过程,不需要冒着在src做变更的风险,只需要删除生成目录,并创建一个新的就可以了。
  3. 确保你所有的测试用例通过
    1. make check
  4. 确保被提交到master主分支上的所有的修改都pull了。在Git中这样操作:
    1. git checkout master
    2. git pull
    3. git checkout my_branch
    4. 检查git diff master的输出,确保在列表中的只有你的修改。如果有其它你没做的修改也在列表中。使用git rebase master命令使你的分支内容是下载master上最新的。

提交补丁

  1. 准备提交你的patch去审核!
    1. Apache Review Board上登录或注册账户
    2. 最快速(也最推荐)的提交方法是通过post-reviews.py 。它是一个对post-review的封装。
    3. 首先,安装 RBTools。点这里查看介绍。
    4. 配置post-review。最简单的方法是建立符号链接: ln -s support/reviewboardrc .reviewboardrc
    5. 从命令行登录Apache Review Board:执行 rbt status
    6. 在你的本地分支上执行 support/post-reviews.py.
    7. 注意:post-reviews.py 在每次提交会在你的分支上创建一个不同于master的新review 。
    8. 确保在“Bugs”字段上加上你的JIRA id(例“MESOS-01”)(这将会自动链接到bug记录)
    9. 在“Description”中加上更改的详细信息,包括需要添加任何文件页面的描述,或是受你影响的更改(例如,你是否改变或添加了任何配置选项/标志?你有添加新的编译文件吗? )
  2. 等待其它的Mesos开发者在Review Board进行代码审查,处理他们的反馈意见,并上传最新的补丁,直到您收到其它贡献者发过来的"Ship It"。
    1. 当处理反馈意见的时候,修改你当前的提交,而不是创建新的提交,否则post-reviews.py又会创建一个新的审查请求(git rebase -i 会帮你不少)。
    2. Review Board 评论用于code细节讨论,JIRA评论用于设计(大的方面)的讨论。
    3. 对每个 RB 注释回应处理,你可以直接回应为 (即每个注释可以直接回应) "完成"或说明你是如何处理它的。
    4. 审查中如果有问题被发起,请以“Fixed”或者“Dropped”的方式处理它。如果处理为"Dropped"请添加注释说明原因。同时,如果你的修复是授权评论式的 (例如,你的修复方式与评论者建议的方式不同) ,也请添加注释。
      1. 当你的你 JIRA/补丁修改被通过后,你将收到其它贡献者发来的"Ship It!",然后有位贡献者将会把你的补丁提交到 git 仓库。祝贺和感谢您参与我们的社区!
      2. 最后一步是确保必要的文档的创建或更新,以让全世界知道关于你的新功能或 bug 修复的事情。

样式向导

- 关于核心的修补程序,我们建议参考 [Mesos C++ Style Guide](http://mesos.apache.org/documentation/latest/mesos-c++-style-guide/)
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务