Shortcuts

参与贡献 OpenMMLab

欢迎各种形式的贡献,包括但不限于以下内容。

  • 修复(文本错误,bug)

  • 新的功能和组件

工作流程

  1. fork 并 pull 最新的 OpenMMLab 仓库 (mmselfsup)

  2. 签出到一个新分支(不要使用 master 分支提交 PR)

  3. 进行修改并提交至 fork 出的自己的远程仓库

  4. 在我们的仓库中创建一个 PR

注意:如果你计划添加一些新的功能,并引入大量改动,请尽量首先创建一个 issue 来进行讨论。

代码风格

Python

我们采用 PEP8 作为统一的代码风格。

我们使用下列工具来进行代码风格检查与格式化:

  • flake8: 一个包含了多个代码风格检查工具的封装。

  • yapf: 一个 Python 文件的格式化工具。

  • isort: 一个对 import 进行排序的 Python 工具。

  • markdownlint: 一个对 markdown 文件进行格式检查与提示的工具。

  • docformatter: 一个 docstring 格式化工具。

yapf 和 isort 的格式设置位于 setup.cfg

我们使用 pre-commit hook 来保证每次提交时自动进行代 码检查和格式化,启用的功能包括 flake8, yapf, isort, trailing whitespaces, markdown files, 修复 end-of-files, double-quoted-strings, python-encoding-pragma, mixed-line-ending, 对 requirments.txt的排序等。 pre-commit hook 的配置文件位于 .pre-commit-config

在你克隆仓库后,你需要按照如下步骤安装并初始化 pre-commit hook。

pip install -U pre-commit

在仓库文件夹中执行

pre-commit install

如果你在安装 markdownlint 的时候遇到问题,请尝试按照以下步骤安装 ruby

# 安装 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

# 安装 ruby
rvm install 2.7.1

或者参照 该仓库 并按照指引执行 zzruby.sh

在此之后,每次提交,代码规范检查和格式化工具都将被强制执行。

在创建 PR 之前,请确保你的代码完成了代码规范检查,并经过了 yapf 的格式化。

C++ 和 CUDA

我们遵照 Google C++ Style Guide

Read the Docs v: latest
Versions
latest
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.