-
Notifications
You must be signed in to change notification settings - Fork 4.2k
how to be a contributor.zh
wiki-sync-bot edited this page Oct 15, 2024
·
1 revision
在浏览器中打开 ncnn, fork
到自己的 repositories,例如
https://github.com/user/ncnn
clone 项目到本地,添加官方 remote 并 fetch:
$ git clone https://github.com/user/ncnn && cd ncnn
$ git remote add tencent https://github.com/tencent/ncnn
$ git fetch tencent
对于 git clone
下来的项目,它现在有两个 remote,分别是 origin 和 tencent:
$ git remote -v
origin https://github.com/user/ncnn (fetch)
origin https://github.com/user/ncnn (push)
tencent https://github.com/Tencent/ncnn (fetch)
tencent https://github.com/Tencent/ncnn (push)
origin 指向你 fork 的仓库地址;remote 即官方 repo。可以基于不同的 remote 创建和提交分支。
例如切换到官方 master 分支,并基于此创建自己的分支(命名尽量言简意赅。一个分支只做一件事,方便 review 和 revert)
$ git checkout tencent/master
$ git checkout -b add-conv-int8
或创建分支时指定基于官方 master 分支:
$ git checkout -b fix-typo-in-document tencent/master
git fetch
是从远程获取最新代码到本地。如果是第二次 pr ncnn,直接从git fetch tencent
开始即可,不需要git remote add tencent
,也不需要修改github.com/user/ncnn
。
为了增加沟通效率,reviewer 一般要求 contributor 遵从以下规则
-
if-else
和花括号{
中间需要换行 - 不能随意增删空行
- tab 替换为 4 个空格
- 为了保证平台兼容性,目前不使用
c++11
,src
目录下尽量避免使用template
- 若是新增功能或平台,
test
目录需有对应测试用例 - 文档放到
doc
对应目录下,中文用.zh.md
做后缀;英文直接用.md
后缀
开发完成后提交到自己的 repository
$ git commit -a
$ git push origin add-conv-int8
推荐使用 commitizen
或 gitlint
等工具格式化 commit message,方便事后检索海量提交记录
浏览器中打开 ncnn pulls ,此时应有此分支 pr 提示,点击 Compare & pull request
- 标题必须是英文。未完成的分支应以
WIP:
开头,例如WIP: add conv int8
- 正文宜包含以下内容,中英不限
- 内容概述和实现方式
- 功能或性能测试
- 测试结果
CI 已集成了自动格式化,restyled-io 会在 pr 的同时生成 Restyled add conv int8
,需要 merge 自动 restyled 的分支,例如
$ git fetch tencent
$ git checkout add-conv-int8
$ git merge tencent/restyled/pull-2078
$ git push origin add-conv-int8
回到浏览器签署 CLA,所有 CI 测试通过后通知 reviewer merge 此分支。
留下个人 qq 号会触发隐藏事件。