前言

大家聽到開源專案,第一反應很多應該都是覺得那是技術大佬才能做的。說到要貢獻開源專案,身為學生或是菜鳥工程師,可能會因為沒有接觸過大型專案而感到恐懼;身為資深工程師,也可能會因為怕開發公司內部閉源專案與世界級開源專案所需的實力不同而感到卻步。但實際真的是這樣嗎?或許只是因為沒有人引導你而已。

我的開源經歷

大學的時候,因為學長的介紹而接觸了 Apache Submarine 這個專案,那是我第一次接觸開源,之後也有成功拿到 Committer 的頭銜。至於 Committer 是什麼,等等我會介紹。然而很遺憾我之前沒有寫文章的習慣,所以當時並沒有留下任何心得文。這次很高興被提名為 Flyte 的 Committer,因此來留下一篇文章當作心得紀錄。最近我也有在貢獻 KubeRay 這個專案,或許有機會之後我會另外寫一篇文章,完整介紹我的開源之旅,也把以前沒有紀錄下成為 Apache Submarine Committer 的心得補上。

Flyte 專案介紹

Flyte 是一個管理 workflow 的工具,基本上就是另一個很有名的專案 Apache Airflow 的競品。強調比 Airflow 更高的 scalability。背後的商業公司是 Union.ai 。大家不要看到開源專案背後有商業公司就覺得很奇怪,事實上幾乎所有開源專案背後都有企業在支持。

Committer 是什麼

當你想要貢獻一個開源專案,你一定不可能對 Repository 有寫入的權限,所有貢獻都是以 Pull Requests 的形式提交,必須由專案的維護者合併你的 Pull Requests,這時你會被稱為 Contributor(貢獻者)。

當你的貢獻達到一個程度,受到專案維護者的青睞時,這時就有機會被邀請加入組織,成為 Committer(不同專案的術語可能不同),這個我不知道中文翻譯叫做什麼,不過大概就等同於「核心貢獻者」。此時你對 Repository 就會有直接寫入的權限,也可以幫忙合併其他 Contributor 的 Pull Requests 了。

我被邀請進 flyteorg 組織

我被邀請進 flyteorg 組織

參與貢獻 Flyte 的過程

今年 1 月的時候,因為 許秉倫 學長從美國回來的一個飯局的一次機遇,加上後續與許多前輩包括 蔡嘉平莊偉赳 職涯諮詢的關係,我決定辭掉現有的工作,一邊做開源專案,一邊申請美國研究所。做開源專案除了你的程式碼可以被很多人使用,獲得成就感之外,還有比較現實的一點就是可以幫履歷添光。為了之後去美國找工作順利以及一些其他因素,我決定重新回來做開源(正如我之前所說,我並不是第一次貢獻開源專案)。

從 2 月開始我加入了 源來適你 這個開源社群,這個社群非常特別,不同於其他台灣的開源社群,源來適你裡面有許多導師帶你實際貢獻開源專案,而 Flyte 這個專案的導師主要是 蘇桓平 (Kevin) ,其實這不是我第一次認識他,因為他是 Apache Submarine 的 PMC Member,也就是說我以前貢獻 Apache Submarine 的時候他也是我的導師之一。

稍微扣回標題,為什麼說我是「透過源來適你」成為了核心貢獻者呢?主要就是因為源來適你的導師群的原因。正如我前面所提到的,大多數人對貢獻開源專案感到恐懼,最主要的原因其實就是不了解開源生態系。如果有個好的導師帶領你的話,貢獻的難度就會遽降。

無論你是學生、菜鳥工程師、資深工程師,卻步於貢獻開源專案,不外乎是因為覺得專案很複雜、技術門檻很高。而導師的存在,可以找出許多非常簡單好上手的題目給你做,甚至還可以讓你問問題、手把手教學等。相較於自己在茫茫大海的程式碼、issue 之間摸索,有個導師可謂是事半功倍。任何專案一定都會有比較簡單的任務需要人去做,所以完全不用怕自己的實力不夠導致完全不知道怎麼下手。另外導師還有一個最重要的任務:幫你合併程式碼。通常你自己提交了一個 Pull Request 到一個稍微大一點的陌生的專案,你會有 99% 以上的機率等了一個月都沒有人回覆你,而導師通常就是專案的核心貢獻者,具有合併程式碼的權限,因此你不會提交了程式碼卻石沉大海。這對於新手是很重要的,想像你一直被不讀不回,你會不會感到焦慮?會不會信心受到打擊?這也是許多人無法持之以恆貢獻一個開源專案的原因。

從 2 月開始我便著手貢獻 Flyte 這個專案,很高興秉倫學長分給我一些 FlyteInteractive 的東西做,讓我的名字可以出現在 Linkedin 的 Blog 上面。

在 2~7 月期間我提交了 38 個大大小小的 Pull Requests,8 月時很高興被已經在 Union.ai 工作的 陳翰儒 提名為 Committer

其實比起其他更大型的專案,這個數量算很少,我在這期間是一邊準備申請研究所的東西,主要是托福,這也代表其實 Flyte 這個專案成為 Committer 的門檻不算很高,因此非常適合開源新手前來貢獻。

源來適你詳細介紹

源來適你(OpenSource4You) 是由 蔡嘉平 創立的一個台灣的民間開源社群,蔡嘉平本身是 Apache Member,也是 Apache HBase、Apache Kafka、Apache YuniKorn 專案的 PMC Member。除了蔡嘉平本人之外,社群內目前還有其他數位導師分別帶領大家參與貢獻不同的專案,例如 陳楷訓蘇桓平許秉倫陳昱霖劉勛李唯 等。相較於其他台灣的開源社群,真正動手實作的比例更高。在導師們的指導之下已有數位社群成員成功斬獲各個專案的 Committer 頭銜。

截至目前源來適你的活動包含:

  1. 每個開源專案小組的每週例行會議,在撰文的當下有 6 個專案小組在同時進行中。
  2. 每星期三晚上的讀書會,大家一起學習新知。
  3. 每星期六的演講,邀請台灣和美國矽谷的業界人士來分享,主題橫跨技術、職涯、八卦、管理、教育等各種和開源軟體有關的話題。
  4. 不定期的線下活動,讓大家面對面認識一下。
  5. 補助表現優異的成員開發設備或是活動經費。
  6. 出席各種軟體大會當講者,例如之前分享的 2024 Apache CommunityOverCode 亞洲場 ,以及在台灣舉辦的 COSCUP,都有社群成員去演講。

致謝

  • 感謝 嘉平 ,創辦了源來適你這麼棒的組織,這幾個月以來參加社群大大小小的活動、在 Slack 裡面和大家講幹話,真的非常充實且開心。除此之外你還提供了我生涯諮詢以及經濟援助,你真的是我非常尊敬的人,非常感謝!
  • 感謝 桓平 (Kevin) ,不管是以前的 Submarine,還是現在的 Flyte,你真的是個很好的導師,對於這兩個專案感覺我問什麼你都知道,完全沒有你不會的問題。希望你之後職涯順利,之後去美國再去找你碰面!
  • 感謝 翰儒 ,從來沒有看過這麼熱血的做開源的大學生,比我以前第一次做 Submarine 還認真,也感謝你一直幫我跑 CI 和提名我為 Committer。祝你早日被 relocate 到美國,薪資 up up up。
  • 感謝 秉倫 (Byron) ,以前大學是你找我進資訊部的,Submarine 是追隨你才開始做的,這次做 Flyte 也是你從美國回來之後找你吃飯的飯局聊天聊出來的機遇,你甚至還丟了一些很簡單的 FlyteInteractive 的事情給我做,讓我的名字可以被放在 Linkedin 的 Blog 上面。你絕對是我從大一以來就認識的最罩的學長,沒有之一。
  • 感謝 Jason ,在你那邊學到了一些 Flyte 在 Line 公司內部的應用,和你聊天也很愉快,希望之後還有機會交流!
  • 感謝 Troy ,雖然我們比較沒有在程式碼上面合作到,但是感謝你在 Slack 裡面指點了我一些準備申請研究所的問題。希望你之後在 Union.ai 過得順利!
  • 感謝 立行 (Austin) ,成為一起申請今年研究所和一起做 Flyte 的戰友,你跟我這幾個月做的事實在非常像,有種好像是同學的感覺,畢竟我同學幾乎都已經先去美國了,有戰友肯定是比孤軍奮戰好,希望我們都能順利申請到好學校!

最後感謝 源來適你 的各位導師和成員,也歡迎大家加入這個大家庭!

相關連結