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