如何参与贡献Dubbo社区
如何參與貢獻Dubbo社區(qū)
文字版首發(fā)于dubbo.io官網:http://dubbo.apache.org/zh-cn/blog/how-to-involve-dubbo-community.html
前言
本文首次分享是在Apache Dubbo(incubating)成都meetup上,這個話題是第一次在meetup上講,不是我們沒有更好的話題,相反,我們認為這個話題非常重要,甚至建議這個話題以后每次meetup都要講。
Dubbo的發(fā)展歷史大家應該并不陌生了,這里我還是簡單回顧一下。Dubbo于2011年在github開源,后面幾年由于一些原因停止了維護,直接去年7月份阿里重啟維護,并于2018年2月16日捐獻給Apache。
為什么會選擇捐獻給Apache,主要是為了打消社區(qū)對Dubbo未來發(fā)展的顧慮,給Dubbo用戶足夠的信心;Apache認為社區(qū)大于代碼,非常注重多樣性,強調一個項?需要有多個公司和個人貢獻者參與,現在Dubbo的發(fā)展完全是按The Apache Way社區(qū)化的方式來運作的。
Apache的誕生
說到Apache,大家都非常熟悉了,它是全球目前最大的軟件基金;Apache的很多項目我們都用過,比如Maven、Log4j、Tomcat等,但有一個項目要特別強調的,那就是 Apache httpd server,這是Apache的第一個項目。
Apache軟件基金會正式創(chuàng)建于1999年,主要是為公眾提供有用的免費軟件,并為軟件開發(fā)者社區(qū)提供支持和服務;它的創(chuàng)建者是一個自稱為Apache組織的群體;
早在1995年,這個組織就存在了,他們聚集在一起,在美國伊利諾伊大學超級計算機應用程序國家中心開發(fā)的NCSA HTTPd服務器的基礎上開發(fā)與維護了一個叫Apache的HTTP服務器。
最早NCSA HTTPd服務器是一個叫Rob McCool的人開發(fā)的,但是后來慢慢失去了興趣,導致這個功能強大又好用的服務器沒人維護;于是一些愛好者和用戶就自發(fā)開始維護起來,并不斷改善功能、發(fā)布版本;為了更好進行溝通,一哥們就創(chuàng)建了一個郵件組,并把維護工作高效組織起來,且自稱是Apache組織,并把這個軟件叫Apache 服務器。
這也是為什么Apache的所有的項目到今天為止依然以郵件列表作為溝通的主要方式。
關于Apache的命名來源,從北美當地的一支叫Apache的印第安部落名稱而來,這支部落以高超的軍事素養(yǎng)和超人的忍耐力著稱,19世紀后半期對侵占他們領土的入侵者進行了反抗;為了對這支部落表示敬仰,就取了這個名字;但這里還流傳著一個小故事,說是在NCSA HTTPd基礎上,大家都通過打補丁不斷在修改這個軟件,被戲稱為A Patchy Server,和Apache Server讀音很像。
隨著后來商業(yè)需求擴大,圍繞Apache HTTP服務器的項目越來越多,后來越來越多的項目啟動,也有很多外部組織捐獻項目;為了讓這些外部項目能順利進入到Apache基金會,2002年創(chuàng)建了Incubator(孵化)項目。可以看到,經過10多年的發(fā)展,到2010年,75個頂級項目,30個孵化項目,每天2697封討論郵件;2018年這個數據進一步增長,194個頂級項目,54個孵化項目,3255個committers;其中中國人主導的項目,有RocketMQ,WeeX,ECharts,Skywalking等。
Dubbo正在成為Apache頂級項目的路上——Apache孵化項目中。
回顧一下Apache這些歷史和數據,我們不難發(fā)現幾個關鍵詞:興趣、參與、郵件;這些就是我們后面要重點介紹的The Apache Way。
ASF組織架構
我們知道每個組織都有它自己的架構,ASF同樣也不例外;那Apache的組織架構是什么樣的呢?它有什么獨特的地方嗎?這里特別要強調的是Project Management Committees,即 PMC,每個項目從孵化階段開始就會有PMC,主要負責保證開源項目的社區(qū)活動都能運轉良好,這里運轉的機制就是The Apache Way。
圖中,Board就是負責整個基金會符合章程的運作。Board我們一般很少能接觸到,接觸更多的是PMC以及下面的這幾層。
參與Apache項目社區(qū)活動的人,一般分為以下幾類:
直接用戶:在座的都是Dubbo的用戶,可能部分現在還不是,但將來肯定會是
貢獻者:部分用戶在使用Dubbo過程中,遇到問題,自己通過分析調試找到解決方案,并提交給Dubbo官方,最終被接受,這些用戶就是Dubbo的貢獻者
提交者:貢獻多了,經過PMC的提議和投票,就會成為Committer;Committer即意味著正式加入Apache,擁有個人Apache帳號以及相應項目的寫權限
PMC:Committer再往上走就是PMC,這個必須由現有PMC成員提名
個人在社區(qū)的成長,就像我們在公司晉升一樣,一步一步往上走。
本文的目的就是告訴大家,從User到Contributor沒有大家想像的那么難,從Contributor到Committer也不是不可能;只要大家擁有一顆開源的心,找到自己感興趣的項目,并持續(xù)投入,付出肯定會有回報。
The Apache Way
就像你加入一家公司需要了解這家公司的文化一樣,參與Apache開源項目之前,同樣我們需要需要了解ASF的文化,這個文化就稱為The Apache Way。
這里想特別強調以下幾點:
- 社區(qū)勝于代碼:把項目構建出來這不是開源,去構建社區(qū)才是真正的開源;對社區(qū)而言,一切都是圍繞代碼而生,無代碼則社區(qū)不復存在;在代碼之上,則是如何做事、如何待人、如何決策的理念體現;一個健康的社區(qū)遠比優(yōu)秀的代碼重要——如果代碼奇爛無比,社區(qū)可以重寫,但社區(qū)有了毛病,代碼最終也會付之東流;
- 公開透明與共識決策:
If it doesn't happen on email, it doesn't happen.所有的決定,不管是技術feature、發(fā)展方向,還是版本發(fā)布等,都應該被公開討論,而形式就是郵件列表,這些討論過程和結論都會被永久存檔;而討論的過程,就是大家自由發(fā)表意見的過程,但最終大家要投票,比較民主的做法; - 任人唯賢:
Those that have proven they can do, get to do more.特別強調一點,貢獻絕不僅僅是代碼,貢獻可以是很多方面,接下來我們結合Dubbo來講,大家如何參與并貢獻;
參與Dubbo社區(qū)
要參與Dubbo社區(qū),就要先大概了解一下目前社區(qū)的工作方式??偨Y一句話就是4個角色、3個途徑以及2個代碼組;
- 4個角色前面也提到過了,分別是User、Contributor、Committer、PPMC;這里特別要強調用的是,角色之間不是孤立的,比如提功能建議的也可以是Committer或Contributor等;PPMC有投票權,但其他人一樣也可以投票,這本身就是一種參與、一種貢獻;
- 3個途徑,分別是Dubbo官網、github、dev郵件列表;目前比較活躍的是github issue/PR;我們鼓勵按
The Apache Way的方式,使用郵件列表交流,讓導師看到我們的貢獻; - 2個代碼組,一個是
github.com/apache/incubator-dubbo*,這里是dubbo孵化的項目,目前主要包含dubbo-rpc、dubbo-spring-boot-start、dubbo-ops三個部分;另外一個就是github.com/dubbo,這個是dubbo作為微服務解決方案的所有相關的生態(tài)部分,包括dubbo-rpc的擴展、dubbo與其他產品集成、dubbo多語言客戶端實現以及一些工具和套件等;
所以,對于想參與Dubbo社區(qū)、想為Dubbo這個微服務解決方案自己一份力量的人來說,以下就是你們現在就可以開始做的:
- 開發(fā)郵件組可以訂閱起來,可以參考這里:https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide
- github.com/apache/incubator-dubbo star起來,fork起來
- 學習中英文文檔,進行修正或優(yōu)化,提PR;有疑問的地方,可以email到郵件組或提issue;官方開發(fā)者的回復總比google或stackoverflow里找到的答案要強的多吧?
- 如果你正在使用dubbo,可以將經驗總結出來,寫篇blog,分享給社區(qū);真實的案例總是最具有說服力;
- 如果你有時間,可以參與issue和PR的解決,回條用戶的問題、PR的review;
Good first issue以及Help wanted的issue,總有一個是適合你的; - 如果你想深入學習dubbo-rpc框架,UT是一個非常好的開始,完善和補充現有的UT,一邊學習一邊貢獻,何樂而不為?
- 發(fā)現了bug,報issue;通過自己的努力最終解決了,提一個issue,
first-contributor并不是那么難;哦,對了,拼寫錯誤也算哦; - 如果你發(fā)現一個可以幫助用戶更方便地使用dubbo,開發(fā)、測試、調試、mock、工具等;都可以貢獻到Dubbo生態(tài)中來;
- 最后我們非常歡迎大家通過郵件提想法,也歡迎大家多討論;你會發(fā)現,技術變牛的同時,英文也變的66的了;
加入Apache孵化
如果大家有好的項目希望捐獻給Apache,這個流程可以參考一下;
進? Apache 分為三個階段,準備階段、孵化階段和畢業(yè)階段。準備階段需要做的事情有找到愿意幫助孵化的導師,向Apache 提交進?孵化的申請,經過導師們討論并投票,如果通過的話就可以進?入孵化。孵化階段分為兩大環(huán)節(jié),第?個環(huán)節(jié)是公司和個人簽署協議向Apache 移交代碼和知識產權,之后就是在導師的指導下按照Apache的規(guī)范做版本迭代、社區(qū)運營、發(fā)展更多的Committer;如果最終通過了成熟度評估,就可以順利畢業(yè)成為Apache的頂級項目。
結語
希望越來越多的公司團隊和個人能夠貢獻到國際化的開源社區(qū)里去,一起打造我們中國的開源品牌!也希望大家都能愉快去貢獻,羅馬非一日建成,但付出一定會有回報。
這里透露一個小福利,所有Apache Committer可以免費使用IntelliJ的全套付費產品,包括全宇宙最好用的IDEA。
轉載于:https://www.cnblogs.com/diecui1202/p/involve-dubbo-community.html
總結
以上是生活随笔為你收集整理的如何参与贡献Dubbo社区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家是谁写的呢?
- 下一篇: 如何禁止浏览器自动填充