开源项目中是否有代码审查?如果是这样,使用什么工具来做到这一点?


10

我知道在商业开发中大力推动代码审查。但是,代码审查是在开源软件中使用还是基于信任?如果是这样,那么他们的表现如何?[是否是延迟提交,即“预提交环境”,是否存在允许将该补丁发送给另一个开发者的工具]?

是否有任何使用代码审查的项目?

据我了解,Linux内核主要基于提交者的信任。MySQL是基于主要作者的认可和对性能的影响。


4
Linux实际上使用中尉+独裁者系统。
2012年

Answers:


13

几乎所有开源项目都使用某种关守工作流程,一个人或一群人必须签署所有更改才能进入正式版本。一些较大的项目(例如Linux内核)具有多个关守。您将更改发送给管理子系统区域的人员,将他们的更改发送给管理整个子系统的人员,然后将更改发送给Linus Torvalds,Linus Torvalds有时会亲自检查代码或有时会信任他的副手。这些评论通常没有正式的结构。只是有人在合并之前先查看代码。

至于工具,请查看github上的pull request机制,这是一个很好的例子。您发出请求请求,然后在专门针对该请求请求的网页上,人们发表评论,然后作者进行修改,直到足以接受为止。其他网守仅使用普通git来应用邮件列表中的补丁或合并来自公共存储库的请求请求,这是发明git之类的DVCS的主要原因之一。


5

开源项目通常具有(并且应该,如果没有的话)一套明确发布的“社区准则”,其中通常包括项目工作流程的描述以及如何接受捐款(以及如何对其进行测试)以及作为成为核心提交者的过程。

就代码审查而言,它再次取决于社区,但是准则通常很明确。非提交者的贡献的一些示例准则范围从“工作代码胜出”到“贡献必须具有完整的测试范围和文档,测试必须与代码同时进行”以及介于两者之间的所有内容;不管这些准则如何,所隐含的一个准则是核心提交者在接受非提交者的任何和所有贡献之前,将对其进行审查。

由核心提交者组成的开放源代码项目通常也会举行虚拟会议或专门时间来讨论可能需要额外关注的任何贡献-就像在问题被关闭之前,具有一定声誉的用户进行多次密切投票的SE流程,以及通过meta或chat讨论可疑事物。

以下是一些指向一些我最了解的项目的社区文档示例的快速链接,您可以在其中找到针对这些项目的问题的答案(您很快就会注意到一个主题):


您提到了单元测试。我希望看到错误报告作为单元测试提交。:)我对那些指南一无所知。谢谢!
2012年

3

较大的OSS项目将有许多核心提交者。所以我想他们是事实上的“代码审查员”。

另外,由于OSS代码本质上对所有人开放,因此围绕您正在编写的代码可能会有更多的讨论。尽管这可能不是形式化代码审查的形式,但是您一定会发现,对于特定的OSS项目,您的代码是否不符合要求。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.