如何贡献代码和文档Graph
开始之前Graph
github或社区提交问题Graph
欢迎为项目贡献任何代码或文档,但是建议先在Graph上提交一个问题,和大家共同讨论。
签署贡献者许可协议(CLA)Graph
什么是Graph?
签署协议链接:Graph
单击按钮Sign in with GitHub to agree签署协议。
如果有任何问题,请发送邮件至info@vesoft.com
。
Step 1:通过GitHub fork仓库Graph
NebulaGraph项目有很多Graph为例:
-
访问Graph。
-
在右上角单击按钮
Fork
,然后单击用户名,即可fork出nebula-graph仓库。
Step 2:将分支克隆到本地Graph
-
定义本地工作目录。
# 定义工作目录。 working_dir=$HOME/Workspace
-
将
user
设置为GitHub的用户名。user={GitHub用户名}
-
克隆代码。
mkdir -p $working_dir cd $working_dir git clone https://github.com/$user/nebula-graph.git # 或:git clone git@github.com:$user/nebula-graph.git cd $working_dir/nebula git remote add upstream https://github.com/vesoft-inc/nebula-graph.git # 或:git remote add upstream git@github.com:vesoft-inc/nebula-graph.git # 由于没有写访问权限,请勿推送至上游主分支。 git remote set-url --push upstream no_push # 确认远程分支有效。 # 正确的格式为: # origin git@github.com:$(user)/nebula-graph.git (fetch) # origin git@github.com:$(user)/nebula-graph.git (push) # upstream https://github.com/vesoft-inc/nebula-graph (fetch) # upstream no_push (push) git remote -v
定义pre-commit hookGraph
请将NebulaGraph的pre-commit hook连接到.git
目录。
hook将检查commit,包括格式、构建、文档生成等。
cd $working_dir/nebula-graph/.git/hooks
ln -s $working_dir/nebula-graph/.linters/cpp/hooks/pre-commit.sh .
pre-commit hook有时候可能无法正常执行,用户必须手动执行。
cd $working_dir/nebula-graph/.git/hooks
chmod +x pre-commit
Step 3:分支Graph
-
更新本地主分支。
cd $working_dir/nebula git fetch upstream git checkout master git rebase upstream/master
-
从主分支创建并切换分支:
git checkout -b myfeature
Note
由于一个PR通常包含多个commit,在合并至master时容易被挤压(squash),因此强烈建议创建一个独立的分支进行更改。合并后,这个分支可以被丢弃,因此可以使用上述rebase命令将本地master与upstream同步。此外,如果直接将commit提交至 master,用户可以需要在master分支使用hard reset,例如:
git fetch upstream git checkout master git reset --hard upstream/master git push --force origin master
Step 4:开发Graph
代码风格Graph
NebulaGraph采用cpplint
来确保代码符合Google的代码风格指南。检查器将在提交代码之前执行。
单元测试要求Graph
请为新功能或Bug修复添加单元测试。
构建代码时开启单元测试Graph
详情请参见Graph。
Note
请确保已设置-DENABLE_TESTING = ON
启用构建单元测试。
运行所有单元测试Graph
在nebula
根目录执行如下命令:
cd nebula/build
ctest -j$(nproc)
Step 5:保持分支同步Graph
# 当处于myfeature分支时。
git fetch upstream
git rebase upstream/master
在其他贡献者将PR合并到基础分支之后,用户需要更新head分支。
Step 6:CommitGraph
提交代码更改:
git commit -a
用户可以使用命令--amend
重新编辑之前的代码。
Step 7:PushGraph
需要审核或离线备份代码时,可以将本地仓库创建的分支push到GitHub的远程仓库。
git push origin myfeature
Step 8:创建pull requestGraph
-
访问fork出的仓库
https://github.com/$user/nebula-graph
(替换此处的用户名$user
)。 -
单击
myfeature
分支旁的按钮Compare & pull request
。
Step 9:代码审查Graph
pull request创建后,至少需要两人审查。审查人员将进行彻底的代码审查,以确保变更满足存储库的贡献准则和其他质量标准。