從 Github 開源指南|學習如何貢獻開源專案

Photo by [Tim Mossholder](https://unsplash.com/@timmossholder) on [Unsplash](https://unsplash.com)

本週我們來讀一下「如何為開源做貢獻」。這份文件是 Github 的 Open Source Guide 開源指南,約莫兩年前剛出的時候全部是英文版的,已經三年了,拖到現在才讀(汗)。

(這篇是閱讀開源指南的筆記,原創內容偏少,原文在下方連結)
如何為開源做貢獻?
透過為開源貢獻力量,能從中學習、幫助他人並且從中累積相關技能的經驗 - 任何你能想像得到的技能。 為什麼會有人為開源做出貢獻?有數不清的原因!…opensource.guide

是 Github 7000 顆星星的開源專案
github/opensource.guide
Open Source Guides ( https://opensource.guide/) are a collection of resources for individuals, communities, and…github.com

為何要貢獻開源專案?

原文寫的很好,我用我的話說出來。

1. 打磨你的專業技能

專案中包含了撰寫程式碼、平面設計、使用者體驗設計、撰寫文章 … 等等的工作。只要你想,你就可以在開源專案中找到你的位置。

2. 認識與你有相似興趣的人

我覺得這真的滿重要,在現實生活中要找到相同興趣的人就很困難了,但是透過貢獻開源,你可以無遠弗屆的認識世界各地與你有相似興趣的人。

3. 鍛鍊溝通能力

因為開源專案是一個「共同協做」的專案。你需要向他人解釋自己是用什麼方法實作,也會需要其他人的幫助。

4. 建立名聲

你在開源專案中實作的成果一切都是看的到的,這也意味開源專案是一個能好好火力展示的地方。

5. 學習人際關係的能力

開源為練習領導及管理的能力提供了很好的機會。例如如何解決衝突、組織團隊以及如何為工作的優先順序排列。

小訣竅:走進開源專案,就像你走進一群陌生人中,想要嘗試融入。這群人討論的非常深入了,你突然打岔肯定會讓人覺得奇怪。
與其盲目地在社群中拋出你自己的看法,不如先觀察一下社群的氛圍後再提出,這樣你的想法被注意到的機會才會增加。

找尋專案開始貢獻

如果你還未貢獻任何一個開源專案的話,可以想想,你能夠為開源專案做些什麼?

可以從你有使用過的開源專案開始著手,跟你比較有關係的開源專案,或是你比較感興趣的開源專案,你才會積極的參加。

平均一個專案有 28% 的貢獻是隨意且偶然的,像是 Readme、改錯字、失效連結 … 等等的小地方。

找到專案時,先確保專案是否接受貢獻

可以從幾個地方,看出專案是否活躍,樂於接受貢獻:

從 Master 分支上看看觀察

  • 最近一次的 Commit 是什麼時候?

  • Commit 的次數頻繁嘛?

  • 專案目前有多少貢獻者?

從 Issue 觀察

  • 目前有多少個 issue

  • 維護者回覆 issue 是否迅速

  • 是否有討論熱絡的 issue

  • issue 是否已經大量累積

  • 最近 close 的 issue 是多久以前

從 PR 觀察

  • 有多少處於進行中的 PR

  • 提交 PR 後維護者回覆是否迅速

  • 最近有多少 PR 被 Merge

觀察專案的友善程度

  • 維護者的回應是否有幫助

  • 討論過程是否親切

  • 會不會審查 PR

如何將成果貢獻至開源專案

最重要的是「有效的溝通」,把握幾個要點:

1. 交代來龍去脈

讓他人快速的理解。如果是 Bug 交代清楚你想做的事情是什麼,你當實作了哪些步驟,以便重現錯誤。如果你想要發起一個新的想法,你要解釋為什麼你要這樣做,為什麼你覺得這樣會對專案有幫助。

2. 做好準備工作

在尋求幫助之前,先確保你看過文件、相關 Issue 的討論,當你表達出強烈的意願時,人們會很樂意幫助你的。

3. 溝通時力求精簡明瞭

開源專案每次提交都是需要他人檢閱的,如果你能夠精準的表達你的看法,那麼你得到別人幫助的機會就會大幅提昇。

4. 大膽的提問(但是要有耐心!)

每個人都有新手的時候,不要怕提問。需要注意的是長期維護的人不一定熟悉專案的每一個部分。協作時表現出你的耐心,你會得到相同回報。

5. 尊重社群的決定

有時候你的看法跟社群的看法不一定相同。他們可能不接受你的建議。可能社群最後不接納你的建議。這時你可以試試看討論出折衷方案,或者將專案 fork 另起爐灶。

提交之後

😭有可能沒有人理你

因為大家都很忙,尤其是熱門的開源專案。Issue 很多,維護者的人手不夠,此時就先耐心的等待。

千萬不要私下聯絡,在開源專案中,一切的溝通都應該是公開的。

🚧有人希望你修改你的貢獻

這是好的開始,溝通、改進直到符合維護者得期待。

👎你的貢獻沒有被採納

你的工作最後沒有被採納,這時你可以問問維護者,為什麼沒有被採納。需要注意的是別花時間在爭論上,這會讓你樹立更多敵人。

🎉 你的貢獻被接受。

太棒了!你完成了一次開源貢獻!

延伸閱讀

歡迎訂閱,獲取最新資訊、教學文章,一起變強。

評論