如何参与Apache顶级开源项目建设
大部分人接触到
开源
的概念都是在大学期间, 自己的作业或者工程使用了某某开源项目的某某能力.很自然的就感觉 开源项目是由一群大牛程序员开发
和维护
的, 作为小白萌新只需要拿来使用就可以了. 其实不然, 开源 之所以能健康成长, 离不开每个人的积极参与.
Apache ServiceComb项目 已经从Apache孵化器毕业,正式成为Apache顶级项目,这也是业界首个微服务项目在Apache孵化并毕业成为 顶级项目
。
现如今, ServiceComb 的几个子项目都处于 如火如荼的发展势头中, 我们期望来自各处的 大佬
能提供帮助, 共同维护社区的健康发展.
如何贡献开源
以 ServiceComb 的 子项目
JAVA Chassis
为例. 仓库地址: https://github.com/apache/servicecomb-java-chassis
前提条件
-
掌握 JAVA 语言基本语法, 熟练使用一种 IDE 编码。
-
掌握 maven 、 git 基本命令。
下载代码到本地
- 登录自己的 git 账号, Fork servicecomb-java-chassis 到自己仓库 同时 Star 关注开源项目.
- 从自己的仓库中找到 fork 的目标仓库, clone 到本地.
# 代码 clone到本地
git clone https://github.com/xxx/servicecomb-java-chassis.git
# 配置远端 upstream仓库
git remote add upstream https://github.com/apache/servicecomb-java-chassis.git
# 查看远端仓库.
git remote -v
# 同步远端 upstream仓库
git fetch upstream -a
编译本地项目
开源项目都有一个
readme.md
文档, 告诉你如何使用和编译项目. 直接参考文档一步步来就好了.
# 编译本地项目, 我这里直接跳过 UT 测试. 一般情况下,可以在第一次编译的时候跑下 UT.
mvn clean install -DskipTests
编译完本地项目之后, 就可以开始调试和修改代码了.
使用 JIRA 管理 ISSUE
提 PR
提交PR 之前, 一般要 rebase 一下开源 master 分支的最新代码. 防止有冲突, 可以及时发现 和 解决.
# 我喜欢一把全部fetch下来
git fetch upstream -a
# 一般要合入目标仓库的master分支, 如果要合入目标仓库的其他分支, 要rebase 对应分支
git rebase upstream/master
# rebase 完代码, 一般需要 强退才能推到远端 origin 仓库
git push origin branch_xxx --force
更新文档
如果是一个新特性, 或者有新的配置增加, 需要同时更新文档, 告诉大家如何使用你的这个新特性和配置. JAVA-CHASSIS 的文档仓库是 ServiceComb-DOCS
类似开源项目 提 PR 一样, 给官方的文档提 PR ,也需要在 JIRA 创建一个issue跟踪 PR 进展.
参与社区讨论
要想真正参与到开源建设, 贡献代码只是第一步. 我们还需要积极参与到社区的活动中.