github 參與開源項目開發或貢獻代碼流程


參與開源項目或規范使用git

作為一個coder,如何為頂級的apache社區貢獻代碼,成為apache contributer之一,了解規范使用gitlab是很有必要的

以下以apache flink為例,介紹如何給apache 貢獻代碼。

 

通常如下流程,你為apache貢獻代碼

  1. 遇到了一個apache項目的bug或添加一個新功能
  2. 如果改動較小:在 https://issues.apache.org 建一個ISSUE,一般遇到小的bug或問題可以在issue列表查一下是否已存在,如果有的話可以參與或跟進;
  3. 如果改動較大:最好發一個討論郵件,並開啟一個FLIP (Flink Improvement Proposals)在 https://cwiki.apache.org/confluence/display/FLINK/Flink+Improvement+Proposals,大家經過討論之后,最后發起投票,在有3個committer通過之后,就可以自進入開發階段了。
  4. 投票通過后,就可以創建相關的issue或者子issue;

 

開發代碼

  • fork代碼

首先需要要有自己的github賬號,把flink的代碼fork到自己的賬號下,打開https://github.com/apache/flink,

點擊fork按鈕,在自己的賬號下就可以看到相應工程。

 

  • 下載代碼到本地

之后我們就可以把剛才fork的flink的代碼下載到我們的本地,可以用下面的命令:

git clone https://github.com/xxxxxxxx/flink.git

  • 添加遠程倉庫

遠程倉庫,主要是為了后續提交更新代碼。

git remote add apache https://github.com/apache/flink.git

查詢遠程倉庫命令git remote -v 可以看到有兩個遠程倉庫。

origin https://github.com/xxxxxxxx/flink.git (fetch)
origin https://github.com/xxxxxxxx/flink.git (push)
apache https://github.com/apache/flink.git (fetch)
apache https://github.com/apache/flink.git (push)

 

  • 添加新分支

接下來,添加一個新分支,用於開發我們的代碼。

分支的名字為了方便區分和查詢,可以起一個和這issue同名的分支名,

或者根據功能起一個容易好識別的分支名https://github.com/xxxxxxxx/flink/tree/xxxx

然后就可以在這個分支上開發了,

開發完成之后,需要檢查一下代碼的規范,現在很多的編譯器可以完成代碼規范的檢查,比如IntelliJ IDEA 的 checkstyle

  • 寫測試代碼

測試代碼應該成為一種規范,方便對代碼邏輯等進行測試;

在相關的測試類里面添加相應的測試代碼,另外還應該添加功能說明或相關說明文檔。

  • 提交代碼

因為在自己的開發過程中,flink的mastr主分支可能已經有更新,所以為了避免沖突,先把最新的代碼更新下來;

切換到主分支

git checkout master
git pull apache master

之后,切回自己的分支:

# 切換到自己的分支
git checkout flink-my-branch
# 添加剛才改動的代碼,如果不確定改了哪些,可以git status看一下
git add my-code 
git commit -m '注釋'
# 把變化的代碼添加到我們的分支
git rebase
# 提交分支到自己的倉庫
git push origin flink-my-branch

  • 提交到社區

我們提交分支之后,就可以提交相應的PR(Pull Request)了:https://github.com/apache/flink/pulls
提交注意標題要寫成 [ISSUE] + title的形式,比如 [FLINK-xxxxx] [xxx] xxxxxxx ......

這樣的話就能把你這個Pull requests和issue自動關聯上。

  之后我們就能在相應的issue頁面看到關聯的Pull requests

 

  • 合並PR

代碼提交完后,會有相關的committer或者其他人review代碼,

如果committer認同了你的改動,然后他就會把你的改動合並到master分支,或者是其他相應的版本分支。

  • 代碼貢獻者的名單

list-of-contributors 中可以看到代碼貢獻者的名單

https://flink.apache.org/news/2020/07/06/release-1.11.0.html#list-of-contributors

 

關於開源

源碼中的測試類都是相關功能的開發者提供的,所以對於了解測試新功能有很好的幫助

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM