Answers:
几乎所有开源项目都使用某种关守工作流程,一个人或一群人必须签署所有更改才能进入正式版本。一些较大的项目(例如Linux内核)具有多个关守。您将更改发送给管理子系统区域的人员,将他们的更改发送给管理整个子系统的人员,然后将更改发送给Linus Torvalds,Linus Torvalds有时会亲自检查代码或有时会信任他的副手。这些评论通常没有正式的结构。只是有人在合并之前先查看代码。
至于工具,请查看github上的pull request机制,这是一个很好的例子。您发出请求请求,然后在专门针对该请求请求的网页上,人们发表评论,然后作者进行修改,直到足以接受为止。其他网守仅使用普通git来应用邮件列表中的补丁或合并来自公共存储库的请求请求,这是发明git之类的DVCS的主要原因之一。
开源项目通常具有(并且应该,如果没有的话)一套明确发布的“社区准则”,其中通常包括项目工作流程的描述以及如何接受捐款(以及如何对其进行测试)以及作为成为核心提交者的过程。
就代码审查而言,它再次取决于社区,但是准则通常很明确。非提交者的贡献的一些示例准则范围从“工作代码胜出”到“贡献必须具有完整的测试范围和文档,测试必须与代码同时进行”以及介于两者之间的所有内容;不管这些准则如何,所隐含的一个准则是核心提交者在接受非提交者的任何和所有贡献之前,将对其进行审查。
由核心提交者组成的开放源代码项目通常也会举行虚拟会议或专门时间来讨论可能需要额外关注的任何贡献-就像在问题被关闭之前,具有一定声誉的用户进行多次密切投票的SE流程,以及通过meta或chat讨论可疑事物。
以下是一些指向一些我最了解的项目的社区文档示例的快速链接,您可以在其中找到针对这些项目的问题的答案(您很快就会注意到一个主题):
较大的OSS项目将有许多核心提交者。所以我想他们是事实上的“代码审查员”。
另外,由于OSS代码本质上对所有人开放,因此围绕您正在编写的代码可能会有更多的讨论。尽管这可能不是形式化代码审查的形式,但是您一定会发现,对于特定的OSS项目,您的代码是否不符合要求。