Shortcuts

贡献代码

欢迎任何类型的贡献,包括但不限于

  • 修改拼写错误或代码错误

  • 添加文档或将文档翻译成其他语言

  • 添加新功能和新组件

工作流

| 详细工作流见 拉取请求

  1. 复刻并拉取最新的 OpenMMLab 算法库

  2. 创建新的分支(不建议使用主分支提拉取请求)

  3. 提交你的修改

  4. 创建拉取请求

注解

如果你计划添加新功能并且该功能包含比较大的改动,建议先开 issue 讨论

代码风格

Python

PEP8 作为 OpenMMLab 算法库首选的代码规范,我们使用以下工具检查和格式化代码

  • flake8: Python 官方发布的代码规范检查工具,是多个检查工具的封装

  • yapf: Google 发布的代码规范检查工具

  • isort: 自动调整模块导入顺序的工具

  • markdownlint: 检查 markdown 文件的工具

  • docformatter: 格式化 docstring 的工具

yapf 和 isort 的配置可以在 setup.cfg 找到

通过配置 pre-commit hook ,我们可以在提交代码时自动检查和格式化 flake8yapfisorttrailing whitespacesmarkdown files, 修复 end-of-filesdouble-quoted-stringspython-encoding-pragmamixed-line-ending,调整 requirments.txt 的包顺序。 pre-commit 钩子的配置可以在 .pre-commit-config 找到。

在克隆算法库后,你需要安装并初始化 pre-commit 钩子

pip install -U pre-commit

切换算法库根目录

pre-commit install

如果安装 markdownlint 遇到了问题,可以尝试使用以下的步骤安装 ruby

# install rvm
curl -L https://get.rvm.io | bash -s -- --autolibs=read-fail
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
rvm autolibs disable

# install ruby
rvm install 2.7.1

或者参考 这个代码库zzruby.sh

至此,每一次 commit 修改都会触发 pre-commit 检查代码格式。

提交拉取请求前,请确保你的代码符合 yapf 的格式

C++ and CUDA

C++ 和 CUDA 的代码规范遵从 Google C++ Style Guide

Read the Docs v: v1.4.2
Versions
latest
stable
v1.4.2
v1.4.1
v1.4.0
v1.3.18
v1.3.17
v1.3.16
v1.3.15
v1.3.14
v1.3.13
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.