5W1H聊開源之Who和How——誰、如何參與開源?
上次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.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978795/viewspace-2778317/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 5W1H聊開源之Who——誰“發明”了開源?
- 5W1H聊開源之Why——為什麼要參與開源?
- 5W1H聊開源之What——開源是什麼?
- 5W1H聊開源之What——開源協議有哪些?協議
- 企業開源指南:參與開源社群
- 如何去參與一個開源專案
- 趣說開源|為什麼要參與到開源社群中?
- 參與開源專案很難嗎?
- 開源無疆|京東雲參加2019開源年會,助力開源
- 如何參與翻譯開源專案技術文件?來 Breword
- 誰在主導開源社群
- HTTPDNS開源 Android SDK,賦能更多開發者參與共建httpdDNSAndroid
- 如何參與開源專案 - 細說 GitHub 上的 PR 全過程Github
- 《Koala 聊開源》視訊專欄年度總結和計劃
- 我參與 Seata 開源專案的一些感悟
- 尋找在 GitHub 上參與開源專案的方法Github
- 掘金 AMA:聽分散式架構 SOFA 的開源負責人黃挺聊分散式架構和開源分散式架構
- 你願意成為開源的見證者嗎?歡迎參與2018開源調查報告
- 參與到開源的發展建設中開源的建設也需要日拱一卒
- 微服務、CQRS和eventsourcing開源資源微服務
- 開源專案之kisso
- 【隨筆】開源之殤
- 8款OKR開源系統與非開源系統:如何選擇適合的?OKR
- 開源與烹飪有什麼相似之處?
- 今晚7點直播!聊一聊“進擊的開源作業系統”作業系統
- 阿里雲李響榮獲 2020 中國開源傑出貢獻人物獎,我們找他聊了聊開源和雲原生阿里
- [貝聊科技]「散點圖工具包」正式開源
- 參與開源之夏 x OpenTiny 跨端跨框架 UI 元件庫貢獻,可以贏取獎金?!這份《OpenTiny 開源貢獻指南》請收好?!跨端框架UI元件
- 2022 開源之夏|EMQ 三大開源專案開發圓滿收官MQ
- [譯] 開源專案之 NginxNginx
- go開源庫之cron使用Go
- Seata x 2022 開源之夏 ,一起來做開源達人!
- Milvus Committer 嵇斌:參與開源是一種對自己的投資MIT
- OpenYurt 開源之夏開始申請啦
- [開源]
- Linux與開源發展迅猛Linux
- 江民科技加入尤拉開源社群,與開源生態共同發展
- 如何開源你的 Python 庫Python