1. 程式人生 > >給開源專案如Apache Spark貢獻程式碼的步驟

給開源專案如Apache Spark貢獻程式碼的步驟

本文將教大家怎樣用10個步驟完成給Apache Spark貢獻程式碼這個任務:)

1. 到 Apache Spark 的github 頁面內點選 fork 按鈕

2. 你的github帳戶中會出現 spark 這個專案

3. 本地電腦上, 使用

本地得到一個叫 spark 的資料夾

4. 進入該資料夾,使用

新增 Apache/spark 的遠端地址

5. 使用

git pull upstream master

得到目前的 Apache/spark 的最新程式碼,現在我們在 你自己fork的Spark程式碼倉庫的master 這個分支上,以後這個分支就留作跟蹤 upstream 的遠端程式碼

6.好了,現在你可以開始貢獻自己的程式碼了

按照開發慣例,我們一般不在自己程式碼倉庫的master上提交新的程式碼,而是需要為每一個新增的功能或者bugfix新增一個新的branch。使用:

git checkout -b my_change

建立新的分支,現在我們可以在這個分支上更改程式碼

7. 新增程式碼,並提交程式碼

git add *
git commit -m “message need to be added here”

8. 提交Pull Request 前合併衝突

在我們提交完我們的程式碼更新之後,一個常見的問題是遠端的upstream(即apache/spark)已經有了新的更新,從而會導致我們提交Pull Request時會導致conflict。為此我們可以在提交自己這段程式碼前手動先把遠端其他開發者的commit與我們的commit合併。
切換到我們自己的主分支,使用

git checkout master

拉出apache spark的最新的程式碼。

git pull upstream master

切換回 my_change 分支併合並master上的更改到當前分支,使用

git checkout my_change
git rebase master

然後把自己在my_change分支中的程式碼更新到在自己github程式碼倉庫的my_change分支中去:

git push origin my_change

將程式碼提交到自己的倉庫。

9. 提交Pull Request

這時候可以在自己的倉庫頁面跳轉到自己的my_change分支,然後點選 new pull request。按照Spark的風格規定,我們需要在新的Pull Request的標題最前面加上JIRA代號。所以我們需要在

https://issues.apache.org/jira/上建立一個新的JIRA,例如https://issues.apache.org/jira/browse/SPARK-2859。然後把SPARK-2859這個代號加到你的Pull Request的標題裡面。

Pull Rquest的描述的寫法很重要。有幾個要點:

(2)PR的描述要言簡意賅,講清楚你要解決的問題是什麼,你怎麼解決的。大家可以多參考其他committer提交的PR。

10. 等待Spark committer稽核你的PR。

如果需要進一步的程式碼修改,你可以繼續在本地的my_change分支下commit新的程式碼,所有新的程式碼會在”git push origin my_change”之後自動被加入你之前提交的Pull Request中,方便進行問題的跟蹤和討論。

11. 如果一切順利,具有apache/spark.git 寫許可權的commiter就會把你的程式碼merge到apache/spark.git的master裡面去了!

恭喜你!相信你一定很開心吧?

Happy contributing to Spark!

ps. 你的程式碼被merge完之後,就可以把my_change這個分支給刪掉了:)