5W1H聊開源之Who和How——誰、如何參與開源?
原創
最后编辑:李晓琳 于 2021-07-08 09:33:24
1374次查看
本篇目錄
上次Who的主體是誰“發明”了開源,這一次主體轉換,來看看開源發明之後,還有哪些人爲開源做貢獻?作爲普通程序員的我們,又能以怎樣的形式參與到開源項目中?
比如在 Linux 内核开发中,到 5.9 版本发展到现在已经有 2.4 万开发者参与其中。没错,他们当时都是这个开源项目的参与者。
開源這個術語起源于軟件開發的語境,用于指定創建計算機程序的特定方法。然而,今天,“開源”可以理解爲一種更廣泛的價值觀——開放交流、協作參與、快速原型設計、透明、任人唯賢和面向社區的發展原則。在其他領域開源精神依然存在,開源的精神本質,就是“我做了一個東西,大家來用吧!”這樣一種Geek的精神,同時也有讓世界變得更加美好的願望。
If you find it terrible, make it perfect.
很多人都以爲參與開源是一件很高門檻的事情,必須要通過代碼貢獻才算是開源項目的參與者或貢獻者,其實這是一個很大的理解誤區。一個開源項目其實就是一個社區,在社區裏面會包含各種各樣的角色,開源項目的角色有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
- 開發開源項目的插件
- 參與開源項目推廣
- 參與開源項目的文檔翻譯
開源這個術語起源于軟件開發的語境,用于指定創建計算機程序的特定方法。然而,今天,“開源”可以理解爲一種更廣泛的價值觀——開放交流、協作參與、快速原型設計、透明、任人唯賢和面向社區的發展原則。在其他領域開源精神依然存在,開源的精神本質,就是“我做了一個東西,大家來用吧!”這樣一種Geek的精神,同時也有讓世界變得更加美好的願望。
If you find it terrible, make it perfect.

禅道項目
