🎉我是如何從零到成為 Apache 頂級專案的 Committer

crossoverJie發表於2024-07-12

image.png

最近收到了 Apache PulsarApache HertzBeat社群的邀請郵件,成為了這兩個專案的 Committer

一路走來我從最開始的打游擊戰的閒散人員到如今活躍在各個開源專案裡的“老兵”,用現在流行的話來說 Apache 的這兩個 Committer 就相當於是拿到了編制,進入了正規軍。

下面就分享一下我的個人開源經歷,希望對想要參與開源或者已經在其中的開發者有所幫助。

我的 GitHub 開源故事

初識 GitHub


我這個 Github 賬號是在 15 年 9月份註冊的,那時候剛出來參與工作。

其實在這之前我壓根沒有聽說過 GitHub、對開源也是知之甚少;只是知道老師和同事經常讓我在網上可以下載到一些第三方包(現在回想起來幾乎都是好 Apache 的提供的包)來解決日常的一些常見需求。

當時只是覺得非常方便,沒想到大部分的工作網際網路上都有相關的解決方案。

直到第二年也就是 16 年我才提交第一行程式碼,記得當時是需要和同學共享一些程式碼。

在學校的時候大家都是把檔案打包然後透過 QQ 傳送的,因為我之前在 GitHub 上看到大家都是把原始碼公開的,所以當時的想法是不是可以直接使用 GitHub 把程式碼發給同學,這樣就省去了打包解壓的步驟了。

現在想想還好都是一些非業務程式碼,不然就違反公司安全規定了。

所以其實自己沒有任何開源的概念,只是覺得分享程式碼很方便。

後續在網上看了 Richard Matthew Stallman 發起的自由軟體運動才對開源的由來有了更多的認識,也越發佩服這些參與開源的大佬們。

託管 Blog

image.png
image.png

當時還非常流行在 GitHub 上搭建個人部落格,我自然也跟上了這個潮流;直到現在也沒有斷更。
陸續寫了 240+ 篇部落格。

記得當時最喜歡乾的事就是折騰各種主題,可以在 GitHub 免費託管一個部落格,對當時的我也是震撼蠻大的。

關於部落格的話題還有不少內容可以講,放到後面繼續分享。

提交第一個專案


因為當時在公司剛開始接觸到 SSM(spring+springmvc+mybatis),所以就想把日常學到的東西沉澱下來。

於是就把一些非業務程式碼整理後提交了第一個專案,以更新部落格的方式陸續更新了各種解決方案:

至今已經全部更新完畢,所以我就將它歸檔了。

這也是我第一次正兒八經做開源專案,在這個過程中也結實到了不少朋友,沉澱了許多內容;對於剛工作一兩年的我來說意義還是很重大的。

參與正規軍(Apache)

時間點回到現在,因為工作原因我需要在公司內部維護 Pulsar 訊息佇列;當時 Pulsar 在公司還有著一些細枝末節的問題需要解決。

在解決這些問題的過程中就想著看能不能給社群貢獻些程式碼,這樣也可以更熟悉整個專案。

其實 20 年左右在之前的公司就有使用 Pulsar,只是當時還沒有意識到要向社群貢獻程式碼。

於是我先嚐試做一些無關緊要的修改:

因為這個還被大佬拒過幾個 PR,與此同時我也在持續輸出一個 Pulsar 相關的部落格,當時也得到了大佬的認可:

之後我又根據日常工作中遇到的一些問題或者最佳化持續給社群提交 PR:

這個過程從第一個 PR 到社群大佬提名我大概經歷了一年半的時間。

越大型、嚴謹的專案在處理這些 PR 時就是緩慢的,所以如果你真的想深度參與某個專案時就一定要有充分的耐心。

首先堅持下去,收穫自然就來了。


Apache HertzBeat

今年四月份的時候我在朋友圈還看到另外一個專案:Apache HertzBeat

因為當時我也在做一些可觀測性的內容,正好這個專案是和監控相關的;於是我就跟著文件走了一遍。

發現功能很強也很全,當時也是剛加入 Apache 的孵化器,所以還是有許多可以完善的地方。

我就開始以單測作為切入點嘗試貢獻原始碼,社群的響應速度也非常快。

之後逐漸將我在其他社群學到一些經驗也複製到 HertzBeat 中,慢慢的貢獻的程式碼越多,對 HertzBeat 也就更加熟悉了。

兩個多月的時間我貢獻了 30 個左右的 PR,後來也受到專案發起者的邀請:
image.png

因為是相對更年輕的專案,才更需要大家群策群力;所以如果你也對監控系統感興趣,或者比較熟悉前端技術棧(HertzBeat 有後臺管理介面)都歡迎前來貢獻,後續獲得提名的機會要比已經發展穩定的專案更大一些。

成為 Committer 的好處

講到這裡順便再講講成為 Committer 的一些好處了,雖然開源經常和免費白嫖劃等號,大部分人都是用愛發電的,但因為也有許多大公司得到了開源的好處,所以也給活躍在社群裡的貢獻者提供了一些免費福利。

當然要拿到這些福利肯定是得有一個評判標準,最簡單也最直觀的就是你是否已經是 Apache 組織的 Committer。

Github Copilot

首先第一個好處是提供免費個人使用 Copilot,當然這不全是 Committer 的權益,如果你是某個開源專案的活躍貢獻者也是可以申請的(不一定能申請過,目前好像沒看到透過的標準),只是已經是 Committer 後肯定是能享受這個權益。

Jetbrains 全家桶 IDE

JB 作為一個和開發者強繫結的公司,也提供了對應的福利,只要使用 Apache 的郵箱就可以免費使用他們的全家桶。

Apache 郵箱

提到了郵箱那就不得不提到 Apache 給每個 Committer 都會提供一個專屬郵箱:

雖然市面上有各種的免費郵箱註冊服務,但當你使用 Apache 的郵箱和其他人溝通交流時,大機率對方潛意識裡都會對你高看一點。

這雖然是一些虛無縹緲的東西,但有時候就是會讓溝通更加順暢(比如求職面試時)。

專案的寫許可權

還有一個好處就是有了專案的寫許可權,當你參與過開源專案就知道這個的重要性了,有些時候一些 PR 遲遲得不到回覆和合並,自己只能乾著急。

有了這個許可權之後,只要你的 PR 有人 Approve 之後,在風險可控的情況下不用等著 maintainer 來合併,自己就可以操作。

同時得益於在社群的活躍程度,你再提交到 PR 會更得到重視,同時也能更好的推進某些 feature;這對於依賴某個開源專案的公司來說受益非常大。

Apache 貢獻階梯

相信看到這裡應該有不少人對成為 Apache Committer 感興趣了,也比較好奇什麼樣的標準才能成為 Committer。

以下是我根據一些已經是 Committer 的大佬和 Apache 官方給的一個貢獻階梯作為參考總結出來的。

參與開源的人主要分為以下幾種角色:

  • 普通使用者
  • 貢獻者
  • Committer
  • PMC 專案管理人員
  • 基金會管理人員
  • 基金會董事

整個路徑還是比較清晰的,只是從 PMC 開始到後面的董事難度都是指數級增加。

目前整個國內當選過董事的都是屈指可數。

而關於成為 Committer 的要求某些社群會有明顯的標準:

當然這個標準也不是一成不變的,只要持續的在社群活躍,有臉熟之後自然會有相關的 PMC 為你提名;當然這裡的前提條件都是“持續活躍”。

總結

最後再總結下,為愛發電的開源專案也是可以獲得回報的;特別是當你合併一個 PR 進入某個專案時帶來的愉悅感非常強烈。

隨著時間推進,在之後合併的 PR 可能沒有前幾次那麼強烈,但只要達到一個範圍,社群開始提名你為 Committer 時,這個多巴胺又會持續分泌。

同樣的後續成為 PMC、管理人員、董事又會持續帶來愉悅,當然難度也一個比一個大。

後面的層級離我還很遠,如果今後有達到的一天再來和大家分享。

參考連結:

  • https://community.apache.org/contributor-ladder.html
  • https://hertzbeat.apache.org/zh-cn/docs/community/become_committer
  • https://zh.wikipedia.org/wiki/自由軟體運動

相關文章