deepin-ocr/3rdparty/ncnn/docs/developer-guide/how-to-be-a-contributor.zh.md
wangzhengyang 718c41634f feat: 切换后端至PaddleOCR-NCNN,切换工程为CMake
1.项目后端整体迁移至PaddleOCR-NCNN算法,已通过基本的兼容性测试
2.工程改为使用CMake组织,后续为了更好地兼容第三方库,不再提供QMake工程
3.重整权利声明文件,重整代码工程,确保最小化侵权风险

Log: 切换后端至PaddleOCR-NCNN,切换工程为CMake
Change-Id: I4d5d2c5d37505a4a24b389b1a4c5d12f17bfa38c
2022-05-10 10:22:11 +08:00

2.9 KiB
Raw Permalink Blame History

如何提交代码

一、fork 分支

在浏览器中打开 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++11src目录下尽量避免使用template
  • 若是新增功能或平台,test目录需有对应测试用例
  • 文档放到doc对应目录下,中文用.zh.md做后缀;英文直接用.md后缀

开发完成后提交到自己的 repository

$ git commit -a
$ git push origin add-conv-int8

推荐使用 commitizengitlint 等工具格式化 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 号会触发隐藏事件。