對于很多在公司維護開源項目的工程師來說,成為 Apache 項目的 committer 應該是很多人的一個小夢想,那么怎么才能成為一位 committer,對于一些比較成熟的項目,現(xiàn)在想成為 committer 是有一定的難度,但也不是不可能。
How can I become an Apache committer? 這個問題在 Quora 上也引起了一些討論,本文也是看了哪些點贊比較多的答案之后的一些簡單總結,也督促自己能夠按照別人的建議去踐行,實現(xiàn)自己的一個小 dream。
What does Committer mean : 如果你成為了一個項目的 committer,那么意味著你對這個工程已經有了非常深入的理解,你所提交的代碼你能清楚地知道它不會對工程的其他地方帶來不好的影響、能夠兼容之前的功能;
Who decides on committer status : 每一個 Apache 項目是由一個項目管理委員會(Project Management Committee, PMC)來負責的。當一個 PMC 提名一位 committer 時,會由 PMC 的成員們來投票決定這個 contributor 是否達到 committer 的要求;
上面是對 committer 簡單的說明,那么如何才能成為一位 committer 呢?
- Motivation : 你應該對這個項目中別人提出的問題保持一個積極的態(tài)度,如果你認為這個問題是需要解決的,那你自然而然就會去解決這個問題了;
- Attention to detail : Apache 的項目都有一個非常高的代碼質量要求,在提交一個 pr 時,你應該確保改動的代碼是不會由潛在的 bug 的,并且需要寫適當?shù)臏y試對代碼變更部分。先從小處著手,關注代碼的每一個細節(jié):代碼中使用的數(shù)據(jù)結構、測試是否有異常情況及邊界情況的測試等。如果你能夠按照這個標準要求自己,那么 committer 在 view 你的代碼時,就不會花費太長的時間,久而久之,就會對你慢慢有了一直信任感;
- Activity in the community: 你應該積極地關注社區(qū),把自己的郵箱加入到 mailing list,review 其他 contributor 的代碼,提出一些建議。如果有新的 feature 或設計的變動在討論,盡量加入到這些討論中,即使你的建議不是很出色,也沒有關系。這樣做的好處是你開始密切關注社區(qū)的討論、跟著項目的最新進展;
- Volunteer : Apache 項目有很多與其相關的項目需要 volunteer,如:季度報告、代碼發(fā)版文檔、說明文檔等,你應該積極參與其中。
當然不同的項目成為 committer 的要求是不同的,但是上面這四條是比較通用,任何一個項目的 committer 都有上面這幾個基本要求。
近段時間聽了大沙的一次直播,關于如何成為 Committer,大沙有以下幾點建議(與上面的類似,內容上更具體一些):
- 關注社區(qū)的問題、討論,讀源碼,看看自己能不能解決這個問題,如果不能解決,關注這個 issue,看別人怎么解決這個問題,看別人怎么 review code、怎么解決問題;
- 當你能夠 review 大量的 code,對一個功能比較熟悉,相當于一個 master,那么你離 committer 就非常近了;
- 這需要耐心和時間。