閱讀文件

有幾個文件是必讀的,這些文件有可能是 .md 檔、.rst 檔、或是網站裡面的某一頁:

  • README.md:介紹專案的檔案。
  • Contribution Guide:要怎麼貢獻這個專案、提交貢獻時需要遵守哪些格式或規定等。
  • Code of Conduct:社群的行為守則,基本上你不要太誇張應該都不會踩到線,但還是要看一下。

Issue Tracker

了解專案使用的是什麼 Issue tracker,常見的有直接用 GitHub issues 或是用 JIRA。新手通常是去找現有的 issue 來解,如果要自己開 issue 的話,務必先搜尋一下有沒有重複的 issue 已經被開過了。

Commits

注意該專案有沒有要求 commit message 的格式,建議養成好習慣,不要亂寫 commit message。如果沒有特別要求,可以參考 Conventional Commits 。基本上格式會像下面這樣:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

範例:

feat: Add XXX feature.
fix(frontend): Fix XXX bugs.

而最常見的 type 有以下幾種:

  • feat:增加新功能。
  • fix:修 Bug。
  • docs:改文件。
  • refactor:Refactoring,也就是程式碼邏輯沒有變。
  • test:新增或修改測試。
  • chore:雜事,不知道怎麼分類就用 chore。

有的專案的符號或是大小寫的格式會不太一樣,例如:

[Feat] Add XXX feature.
[Fix][Frontend] Fix XXX bugs.

另外有的專案會提供 pre-commit hooks,有的話請照著指示安裝。

有的專案會要求每個 commits 都必須被 sign-off,詳細請參考我的另一篇教學 開發開源專案常用的 Git 操作指南

Pull Request

如果沒有特殊情形,一個 Pull Request 就是對應一個 issue。基本上要發 Pull Request 前,如果沒有對應的 issue,要先去開一個 issue。但是如果專案沒有強制規定,且你的 Pull Requst 改動的內容也很少,則也可以直接發 Pull Request。

一些特殊用語

有時候 reviewer 會留下一些不常見的縮寫詞或用語,除了自己要看得懂之外,你也可以學著用這些用語,感覺都變專業了😂

  • LGTM:Looks good to me。表示 reviewer 覺得你的 code 沒有問題。
  • PTAL:Please take a look。請求其他人幫忙 review。
  • WIP:Work in progress。表示這個 PR 還沒準備好。
  • ditto:「同上」的意思。
  • nit:表示 reviewer 建議你修改,但他覺得這不是很重要的修改,所以你可修可不修。例如:nit: Rename this variable to XXX