http://src.chromium.org/svn/trunk/src/AUTHORS
查看
下面说一说如何向Chromium项目组提交代码。
Chromium的代码提交大体上分两种:实现新feature;解决issue。这里只说明解决issue的代码提交流程:
1. Chromium要求所有patch都有对应的issue,所以如果你解决的问题并不是一个已知问题,需要提交issue到https://code.google.com/p/chromium/issues/list。注意Chromium要求提交issue前先用关键字查找有没有同样的issue。
2. 如果是你自行提交的issue,需要与Chromium的测试人员沟通,确保他们能重现问题,否则这个issue不会被分配。
3. 一旦issue被确认,Chromium的测试人员会将issue的状态置为Assigned。如果你有解决方案,强烈建议事先与owner沟通,确认你的解决思路可行,以减少后续成本。一个比较好的办法是将你的patch作为附件贴到issue讨论串中,owner会去看。注意,与owner保持良好的沟通有助于你事半功倍!
4. 若Owner接受你的解决思路,你就可以开始提交patch。如果你是第一次提交代码,首先要到下列网页上在线签署CLA:https://developers.google.com/open-source/cla/individual。如果公司已经签署过Corporate专用的CLA,则你不需要再重新签署。注意签署时,最好使用与你的google账户一致的邮箱地址,否则要向你提交的AUTHORS文件的reviewer(一般是这个issue的owner)专门做出解释。
5. 迁出你需要修改的Chromium分支,通常是trunk。新建一个分支,命名随意,比如你解决的issue是319619,可以命名为bug-319619
git checkout -b bug-319619 origin/master
修改完毕后
git commit –m“xxx…”
以上可以用图形化工具TortoiseGit操作。注意Chromium对提交日志的要求很严,至少要有下列信息:
标题
(空行)
正文
(空行)
R=(owner的邮箱)
BUG=(issue的编号)
由于reviewer们不能和你面对面沟通,你如何能在日志中表达清楚你的思路非常重要。注意,如果你是第一次提交patch,你需要同时修改AUTHORS文件。
6. 一旦修改和提交完毕,你就需要使用cl工具提交到Chromium强大的reviewer系统:Rietveld。运行以下命令
git cl upload --send-mail
注意cl工具不属于TortoiseGit,需要用depot_tools下的git方能识别。执行过程中请特别注意warning,没有特殊原因,任何一个warning都是不应该出现的。
注意,第一次运行git cl的过程中可能需要你输入google账号和密码。
7. CL成功后你将会在
https://codereview.chromium.org
看到你的Outgoing reviews一项有了新的条目,接下来的工作,就是等待reviewer们反馈。要特别注意,issue的owner默认是你的reviewer之一,但对于较复杂的问题,一个reviewer通常是不够的,所有修改的源文件都必须由它所属的OWNER(注意与issue的owner相区别)之一来review。可以通过1)查看相应模块的OWNER文件(在源码目录)选取;2)查看你所修改的文件的blame记录,找到维护人。不过更好的办法是求助issue的owner,让他替你选取reviewer最靠谱。
8. 接下来,在这个issue下的所有回复都会自动发送email,你只需要等待reviewer们的意见,修改你的代码。注意代码的修改必须在你先前建立的分支上。每次修改完并提交后,运行“git cl upload”重新提交patch。
9. 一旦你收集到足够的"LGTM" ("Looks Good To Me")评论(评论的reviewer们作为OWNER覆盖了所有修改的文件),你可以点选Rietveld上对应的issue页面的“commit”项 。你的patch会被提交到CommitQueue,稍后Rietveld会运行大量trybot验证你的修改没有引入新的问题。
10. 一旦你的patch通过了所有trybot的考验,祝贺你,你的patch将被正式提交到Chromium上。
更多内容请参考
http://www.chromium.org/developers/contributing-code