Skip to content

Latest commit

 

History

History
123 lines (83 loc) · 4.07 KB

File metadata and controls

123 lines (83 loc) · 4.07 KB

贡献指南

OceanBase seekdb 社区热情欢迎每一位对数据库技术热爱的开发者,期待携手开启思维碰撞之旅。无论是文档格式调整或文字修正、问题修复还是增加新功能,都是对 OceanBase seekdb 社区参与和贡献方式之一,立刻开启您的 First Contribution 吧!

概述

本文档介绍如何为 OceanBase seekdb 项目做出贡献,包括如何找到合适的 Issue、如何提交代码、如何创建 Pull Request 等。

相关文档

如何找到合适的 Issue

  • 新手入门:通过 good first issue 标签可以找到适合新手入门的 issue
  • Bug 修复:通过 bug 标签找到当前版本的 bug
  • 新功能:通过 new feature 标签找到建议添加的功能

找到合适的 issue 之后,可以在 issue 下回复 /assign 将 issue 分配给自己。

代码贡献流程

以下步骤以 CentOS 7 操作系统为例。

1. Fork 项目仓库

  1. 访问项目的 GitHub 地址
  2. 点击 Fork 按钮创建远程分支。

2. 配置本地环境变量

working_dir=$HOME/workspace # 定义工作目录
user={GitHub账户名} # 和github上的用户名保持一致

3. 克隆代码

mkdir -p $working_dir
cd $working_dir
git clone git@github.com:$user/seekdb.git
# 也可以使用: git clone https://github.com/$user/seekdb

# 添加上游分支
cd $working_dir/oceanbase
git remote add upstream git@github.com:oceanbase/seekdb.git
# 或: git remote add upstream https://github.com/oceanbase/seekdb

# 为上游分支设置 no_push
git remote set-url --push upstream no_push

# 确认远程分支有效
git remote -v

4. 创建新分支

# 更新本地 master 分支。
new_branch_name={issue_xxx} # 设定分支名,建议直接使用issue+id的命名
cd $working_dir/oceanbase
git fetch upstream
git checkout master
git rebase upstream/master
git checkout -b $new_branch_name

5. 开发

在新建的分支上完成开发

6. 提交代码

# 检查本地文件状态
git status

# 添加您希望提交的文件
# 如果您希望提交所有更改,直接使用 `git add .`
git add <file> ...
# 为了让 github 自动将 pull request 关联上 github issue,
# 建议 commit message 中带上 "fixed #{issueid}", 其中{issueid} 为issue 的id,
git commit -m "fixed #xxxx: update the xx"

# 在开发分支执行以下操作
git fetch upstream
git rebase upstream/master
git push -u origin $new_branch_name

7. 创建 PR

  1. 访问您 Fork 的仓库。
  2. 单击 {new_branch_name} 分支旁的 Compare & pull request 按钮。

8. 签署 CLA 协议

签署Contributor License Agreement (CLA) ;在提交 Pull Request 的过程中需要签署后才能进入下一步流程。如果没有签署,在提交流程会有如下报错:

image

9. 代码审查与合并

有review、合并权限的维护者,会帮助开发者进行代码review;review意见通过后,后续的操作都会由维护者进行,包括运行各项测试,最终代码会由维护者通过后合入

10. 祝贺成为贡献者

当 pull request 合并后,则所有的 contributing 工作全部完成,恭喜您,您成为 OceanBase seekdb 贡献者!

贡献类型

除了代码贡献,您还可以通过以下方式为项目做出贡献:

  • 文档改进:修正文档错误、改进文档结构、添加示例
  • 问题报告:提交 bug 报告或功能建议
  • 代码审查:帮助审查其他人的 Pull Request
  • 社区支持:在 Issue 和讨论区帮助其他开发者

感谢您对 OceanBase seekdb 项目的贡献!