发布于 2015-12-05 11:12:45 | 211 次阅读 | 评论: 0 | 来源: 网络整理
提交补丁
- 你已经修改了一个bug,或增加了一个功能,然后想要提交它。真棒!
- 我们使用 Apache Review Board代码审查工具进行代码审查。如果你还没有帐户,则需要创建一个 (它和您的 Apache JIRA 帐户是不同的)。
- 每个包含了要修改代码库的JIRA都要创建一个代码审查请求。
编码之前
- 通过Git,把代码从Apache的资源库上check out下来。教程请戳这里。
- 加入开发,问题跟踪,审查,搭建的邮件列表,请发送邮件至相应邮箱:dev-subscribe@mesos.apache.org, issues-subscribe@mesos.apache.org, reviews-subscribe@mesos.apache.org 和 builds-subscribe@mesos.apache.org。
- 在JIRA上找一条你想解决的,并且还未分派的JIRA记录,或者你自己创建的记录(你需要JIRA账号,见下文)
- 这条JIRA记录也许是一个bug反馈(可能是你遇到并上报的一个bug. 比如在试图编译的时候碰到的bug.)或是一个新增的功能。
- 相对于仅仅"Open"来说,把问题标记为"Accepted"更好。如果一个问题被接受了,这表示至少有个Mesos开发者认为,这个问题提出的想法后期值得去做。
- 标记为"新手"的标签的问题适用于"启动器"项目。
- 给自己分派JIRA,你需要如下步骤:
- 一个Apache JIRA用户账户(点击这里注册)
- 需要让一位Mesos提交者(发邮件到dev@mesos.apache.org)把你添加到Mesos"贡献者"列表里,这样才能被分配(或分配给自己)JIRA问题。
- 制定计划来解决问题,建议在 JIRA 的评论区写计划
- 找个导师一起完成补丁。导师就是Mesos提交者,他和你一起干活,对你提议的设计给予反馈,最终把你的修改提交到Mesos代码树。
- 可以通过发邮件给dev邮件列表(带上JIRA问题链接)来找个导师。也可以尝试给JIRA问题添加个评论来寻找。
- 还可以在IRC里问开发者们来找个导师(/documentation/latest/in the mesos channel on Freenode)。在这里可以找到当前的提交者列表:已经做过你要修改的组件的开发者可能会适合做导师。
创建补丁
- 创建一个或多个测试用例来验证bug或功能(Mesos团队使用测试驱动开发)。在开始编码之前,确保这些测试用例都失败。
- 测试 patterns页面提供了一些写测试用例的建议。
- 确保代码的修改(不管你用哪个IDE/编辑器)真正地修复了bug或实现了功能。
- 在开始前,请阅读 Mesos C ++样式 指南。建议使用 git pre-commit hook (
support/hooks/pre-commit
) 自动检查样式错误。请参阅hook 脚本的使用说明。
- 大部分你做的更改应该是
BASE_MESOS_DIR
里的文件
- Mesos 内部根目录:
./bootstrap
(只有从git 资源库上编译才会用到)
- 如果做编译的话,我们不建议你从源目录编译,建议这样:
- 在Mesos 内部根目录:
mkdir build && cd build
../configure
make
- 现在在你创建的目录里,通过编译,生成了所有的文件。而通过源目录src编译,文件则会散落各处。前者的编译方式更清爽,并易于清理,比如你想通过configure 和make命令来避免一些文件生成的时候。你还可以重置编译过程,不需要冒着在src做变更的风险,只需要删除生成目录,并创建一个新的就可以了。
- 确保你所有的测试用例通过
make check
- 确保被提交到master主分支上的所有的修改都pull了。在Git中这样操作:
git checkout master
git pull
git checkout my_branch
- 检查
git diff master
的输出,确保在列表中的只有你的修改。如果有其它你没做的修改也在列表中。使用git rebase master
命令使你的分支内容是下载master上最新的。
提交补丁
- 准备提交你的patch去审核!
- 在Apache Review Board上登录或注册账户
- 最快速(也最推荐)的提交方法是通过
post-reviews.py
。它是一个对post-review的封装。
- 首先,安装 RBTools。点这里查看介绍。
- 配置post-review。最简单的方法是建立符号链接: ln -s support/reviewboardrc .reviewboardrc
- 从命令行登录Apache Review Board:执行
rbt status
- 在你的本地分支上执行
support/post-reviews.py
.
- 注意:
post-reviews.py
在每次提交会在你的分支上创建一个不同于master
的新review 。
- 确保在“Bugs”字段上加上你的JIRA id(例“MESOS-01”)(这将会自动链接到bug记录)
- 在“Description”中加上更改的详细信息,包括需要添加任何文件页面的描述,或是受你影响的更改(例如,你是否改变或添加了任何配置选项/标志?你有添加新的编译文件吗? )
- 等待其它的Mesos开发者在Review Board进行代码审查,处理他们的反馈意见,并上传最新的补丁,直到您收到其它贡献者发过来的"Ship It"。
- 当处理反馈意见的时候,修改你当前的提交,而不是创建新的提交,否则
post-reviews.py
又会创建一个新的审查请求(git rebase -i
会帮你不少)。
- Review Board 评论用于code细节讨论,JIRA评论用于设计(大的方面)的讨论。
- 对每个 RB 注释回应处理,你可以直接回应为 (即每个注释可以直接回应) "完成"或说明你是如何处理它的。
- 审查中如果有问题被发起,请以“Fixed”或者“Dropped”的方式处理它。如果处理为"Dropped"请添加注释说明原因。同时,如果你的修复是授权评论式的 (例如,你的修复方式与评论者建议的方式不同) ,也请添加注释。
- 当你的你 JIRA/补丁修改被通过后,你将收到其它贡献者发来的"Ship It!",然后有位贡献者将会把你的补丁提交到 git 仓库。祝贺和感谢您参与我们的社区!
- 最后一步是确保必要的文档的创建或更新,以让全世界知道关于你的新功能或 bug 修复的事情。
样式向导
- 关于核心的修补程序,我们建议参考 [Mesos C++ Style Guide](http://mesos.apache.org/documentation/latest/mesos-c++-style-guide/)