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