上次Who的主体是谁“发明”了开源,这一次主体转换,来看看开源发明之后,还有哪些人为开源做贡献?作为普通程序员的我们,又能以怎样的形式参与到开源项目中?
很多人都以为参与开源是一件很高门槛的事情,必须要通过代码贡献才算是开源项目的参与者或贡献者,其实这是一个很大的理解误区。一个开源项目其实就是一个社区,在社区里面会包含各种各样的角色,开源项目的角色有Contributor(贡献者)、Committer(提交者)、Maintainer(维护者)、User(用户)。大多数人对参与开源的理解可能局限在狭义的前两者,而对于这个问题第一反应可能也是直接参与到开发中,才是参与了开源项目。
User
实际上,除了最直接的Contributor和Committer,其他人也可以通过各种各样的方式对项目作出贡献。如禅道项目管理软件的用户们,就是以User的身份参与到了禅道这个开源项目中,对禅道的使用、标记、推荐乃至提交Bug、提供使用反馈,都是一种对开源项目的参与和贡献。
比如在 Linux 内核开发中,到 5.9 版本发展到现在已经有 2.4 万开发者参与其中。没错,他们当时都是这个开源项目的参与者。
Contributor
开源项目的代码、文档和作品都是由项目社区的成员创建、测试、使用、讨论和优化构成。这些过程可划分为各种任务,需要不同技能、不同参与程度及不同技术专长水平。所以,如果想要参与到开源项目中成为真正的贡献者,有很多个活动可选择。比如对该项目发出过pull request并合并到项目、测试和报告或者修复 Bug、编写和更新软件、撰写或更新文档、翻译、向他人推荐该项目、组织线下活动等。
Committer
Committer通常在项目日常运营过程中通过各种贡献积累,得到项目核心维护团队的提名和认可,最终从一般贡献者成为提交者,并且在开源项目中拥有更高的权限,他们是拥有代码仓库写操作权限的开发者。一般情况 Committer 有代码仓库的权限可以直接提交代码,通常也有权 Review (检视)别人的代码决定是否可以合并提交。作为一个开源项目的参与者,能够成为 Committer 本身就是一种荣誉,也是鼓励大家能够持续参与、并保持社区健康的很重要的原因。比如成为Apache的Committer可能是很多开源项目工程师的小梦想。
Maintainer
致力于一个项目并促进该项目发展的用户。常常是该开源项目的发起者或owner,也可以是一个团队。他们在开源项目中拥有对此项目的最高决策权,决定项目的功能、战略、发展方向。在 Apache 软件基金会的组织架构体系中,每个项目都有独立的 PMC(项目管理委员会)进行管理,PMC 成员为项目提名并选举新提交者(Committer),PMC 成员还负责提名并投票新的 PMC 成员等。
参与开源的方式
- 直接参与开源项目的开发
- 参与开源项目的测试
- 为开源项目提交Bug、修复Bug
- 开发开源项目的插件
- 参与开源项目推广
- 参与开源项目的文档翻译
除了以上开发者作为个体参与的方式,还可以在商业公司参与开源项目,这样在为开源做出贡献的同时,也可以得到物质报酬,不至于陷入经济窘境。有很多商业公司就是开源项目的发起者或者主要参与者。比如近期很火的OpenHarmony就是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,华为是项目发起者。那么华为公司参与到这个开源项目中的人员,同时也都是开源项目的参与者。
开源这个术语起源于软件开发的语境,用于指定创建计算机程序的特定方法。然而,今天,“开源”可以理解为一种更广泛的价值观——开放交流、协作参与、快速原型设计、透明、任人唯贤和面向社区的发展原则。在其他领域开源精神依然存在,开源的精神本质,就是“我做了一个东西,大家来用吧!”这样一种Geek的精神,同时也有让世界变得更加美好的愿望。
If you find it terrible, make it perfect.