Apache孵化器主席Justin Mclean:如何成爲Apache頂級開源項目

近日,Apache孵化器主席、Apache基金會成員、Dubbo & RocketMQ等開源項目的導師Justin Mclean來到阿里巴巴西溪園區,與衆多開發者分享瞭如何打造一個Apache頂級項目,以及項目孵化過程會遇到的一些盲點和挑戰。

經Justin Mclean先生本人允許,並經主辦方阿里中間件事業部&阿里技術戰略部授權,小編將會議中分享的內容整理成文,帶大家走進Apache軟件基金會,瞭解頂級開源項目的晉級之路。(現場爲英文分享,本文在分享的基礎上做了些內容擴展,感謝阿里巴巴高級技術專家千臂對本文的校對和在內容上的貢獻)

_2018_10_16_5_17_59

Justin Mclean Bio:

  • Apache孵化器主席
  • 獨立程序員,30年+編程經驗
  • Apache孵化器PMC
  • Apache軟件基金會成員
  • 包括Dubbo在內的多個Apache項目的導師
  • 參與審覈了350+ Apache孵化器項目的發佈

##爲什麼郵件列表仍是最主要的溝通方式?

Apache是目前全球最大的軟件基金會,其第一個項目是Apache Httpd Server,大家用過的諸多項目,例如Dubbo, Log4j, Maven, RocketMQ和Tomcat等,均孵化自Apache。

_2018_10_16_5_50_32

  • 中文名:Apache 軟件基金會
  • 英文名:Apache Software Foundation
  • 英文簡稱:ASF

ASF 正式創建於1999年,主要是爲公衆提供有用的免費軟件,併爲軟件開發者社區提供支持和服務,它的創建者是一個自稱爲Apache組織的羣體。

早在1995年,Apache組織的成員聚集在一起,在美國伊利諾伊大學超級計算機應用程序國家中心開發的NCSA HTTPd服務器的基礎上開發與維護了一個叫Apache的HTTP服務器。

早期,NCSA HTTPd服務器是一個叫Rob McCool的程序員開發的,但是後來慢慢失去了興趣,導致這個功能強大又好用的服務器沒人維護。於是一些愛好者和用戶就自發開始維護起來,並不斷改善功能、發佈版本。爲了更好的進行溝通,組織中的一位成員創建了一個郵件組,把維護工作高效的組織起來,並把這個軟件叫 Apache 服務器。這也是爲什麼Apache的所有項目至今仍然以郵件列表作爲溝通的主要方式。

Apache的命名來源於北美當地一支名叫Apache的印第安部落,這支部落以高超的軍事素養和超人的忍耐力著稱,19世紀後半期對侵佔他們領土的***者進行了反抗。爲了對這支部落表示敬仰,就取了這個名字。但這裏還流傳着一個小故事,說是在NCSA HTTPd基礎上,大家都通過打補丁不斷在修改這個軟件,被戲稱爲A Patchy Server,和Apache Server讀音很像。

_2018_10_15_7_31_29

後來,隨着商業需求的增多,圍繞Apache HTTP服務器的項目越來越多,也有一些外部組織開始捐獻項目給Apache,以促進項目發展。爲了讓這些外部項目能順利進入到Apache,Apache於2002年創建了Incubator(孵化)項目。經過20多年的發展,截止2018年,ASF 已擁有194個頂級項目,54個孵化項目,6500+位committers,700位基金會成員,196位PMC,50個podlings。其中,由中國開發者主導的項目,有RocketMQ,WeeX,ECharts和Skywalking等。

##ASF 都有哪些成員?

參與Apache項目社區活動的人,一般分爲以下幾類:

  • 直接用戶User:通過使用社區的項目構建自己的業務架構的開發者都是Apache的用戶;
  • 貢獻者Contributor:部分用戶在使用Apache某個或多個項目的過程中,遇到問題,自己通過分析調試找到解決方案,並提交給項目組,最終被接受,這些用戶就是Apache的貢獻者;
  • 提交者Committer:貢獻多了,經過PMC的提議和投票,就會成爲Committer,Committer即意味着正式加入Apache,擁有Apache個人帳號以及相應項目的寫權限;
  • PMC:Committer再往上走就是PMC,這個是由現有PMC成員提名產生的。

此外,ASF 還有21位創始成員,和一個Board Member Team,主要負責基金會各類章程的制定和運作。

特別要強調的是Project Management Committees,即 PMC,每個項目從孵化階段開始就會有PMC,主要負責保證開源項目的社區活動都能運轉良好,這裏運轉的機制就是The Apache Way。

##什麼是 The Apache Way?

就像我們加入一家公司需要了解這家公司的文化一樣,參與Apache開源項目之前,我們也需要需要了解ASF的文化,這個文化就稱爲The Apache Way。

_2018_10_16_5_52_54

  • 公益使命- Charity:ASF是公益組織,使命是爲全世界提供有用的軟件,並且全部免費。取之有道,用之有方。
  • 實用主義 - Pragramtic:相比GPL,Apache License有更廣泛的用戶基礎,有人的地方就有規矩,但社區沒有死板的規定,只有guideline幫助大家發展項目。No one is the Boss.
  • 社區勝於代碼 - Community:把項目構建出來這不是開源,去構建社區纔是真正的開源。對社區而言,一切都是圍繞代碼而生,無代碼則社區不復存在。在代碼之上,則是如何做事、如何待人、如何決策的理念體現,一個健康的社區遠比優秀的代碼重要。如果代碼奇爛無比,社區可以重寫,但社區有了問題,代碼即便再好,最終也會付之東流。More resources than a company.
  • 公開透明與共識決策 - Open&Consensus:所有的決定,不管是技術feature、發展方向,還是版本發佈等,都應該被公開討論,而形式就是郵件列表,這些討論過程和結論都會被永久存檔。而討論的過程,就是大家自由發表意見的過程,最終通過投票,以比較民主的方法來做集體決定。If it doesn't happen on email, it doesn't happen.
  • 任人唯賢 - Merit:特別強調一點,貢獻絕不僅僅是代碼,貢獻可以是很多方面,還包括修正中英文文檔,提交PR,總結經驗分享到社區等等。Those that have proven they can do, get to do more.

##開發者如何參與社區貢獻

  1. 第一步是先訂閱開發郵件組,以Dubbo爲例,具體步驟可以參考這裏:https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide
    1. 學習中英文文檔,進行修正或優化,提PR。有疑問的地方,可以E-mail到郵件組或提issue,官方開發者的回覆通常會比Google或StackOverFlow裏找到的答案更全面和準確。
  2. 如果你正在使用某個開源項目,可以將實踐經驗總結出來,寫篇blog,分享到社區。真實的案例總是最具有說服力的。
  3. 參與issue和PR的解決,回答用戶的問題、PR的review。Good first issue以及Help wanted的issue,總有一個適合你。
  4. 如果你想深入學習Dubbo-rpc框架,UT是一個非常好的開始,完善和補充現有的UT,一邊學習一邊貢獻,何樂而不爲?
  5. 發現了bug,報issue,通過自己的努力最終解決了,提一個issue,first-contributor並不是那麼難,拼寫錯誤也算哦。
  6. 如果你發現一個可以幫助用戶更方便地使用Dubbo,無論是開發、測試、調試、mock還是其他工具,都可以貢獻到Dubbo生態中來。
  7. 最後社區非常歡迎大家通過郵件提想法,也歡迎大家多討論,你會發現,技術變牛的同時,英文也變的666了。

##開源項目晉級之路

進⼊ Apache 分爲三個階段,準備階段、孵化階段和畢業階段。

_2018_10_16_5_54_28

  • 準備階段:找到願意幫助孵化的導師(通常是3位),向Apache 提交進⼊孵化的申請,經過導師們討論並投票(獲得多數票即可通過),通過後進⼊就可以孵化了。

  • 孵化階段:分爲兩大環節,第⼀個環節是公司和個人簽署協議向Apache 移交代碼和知識產權。第二個環節是在導師的指導下按照Apache的規範,搭建開源項目的官網,在社區發佈項目新版本並優化build流程,引入committers構建基於項目的開發者生態,逐步將生態做大。

  • 畢業階段:如果最終通過了成熟度評估,就可以順利畢業成爲Apache的頂級項目了。

最後,當一位開發者提問Justin,如何晉級成一位頂級程序員?他給出了這樣的答案:

  • 敢於試錯,不要擔心犯錯,這是寶貴的經歷,但要從中汲取經驗避免第二次犯錯;

  • 積極參加到開源社區,在社區可以鍛鍊自己的思考能力和解決問題的能力,同時,可以認識很多志同道合的朋友,這是技術能力以外更重要的財富;

  • 髮型不重要。

-> 歡迎關注“阿里巴巴中間件”,加入中間件開發者羣,與技術同行。

101020104542_0949_2_Jpeg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章