How to Contribute Code
代码风格
SINGA 代码库 在CPP和Python代 码中都遵循 Google 风格。
强制执行 Google 编码风格的一个简单方法是使用 Visual Studio Code 编辑器中的 linting 和格式化工具:
安装扩展后,编辑settings.json
文件:
{
"[cpp]": {
"editor.defaultFormatter": "xaver.clang-format"
},
"cpplint.cpplintPath": "path/to/cpplint",
"editor.formatOnSave": true,
"python.formatting.provider": "yapf",
"python.linting.enabled": true,
"python.linting.lintOnSave": true,
"clang-format.language.cpp.style": "google",
"python.formatting.yapfArgs": ["--style", "{based_on_style: google}"]
}
根据您的操作系统,用户设置文件位于以下位置:
- Windows %APPDATA%\Code\User\settings.json
- macOS "$HOME/Library/Application Support/Code/User/settings.json"
- Linux "$HOME/.config/Code/User/settings.json"
配置是在相应的配置文件中指定的。而这些工具会自动查找项目根目录下的配置文件,比
如.pylintrc
。
安装必要工具
最理想的情况是所有贡献者都使用相同版本的代码格式化工具(clang-format 9.0.0 和 yapf 0.29.0),这样在不同 PR 中的代码格式化就会完全相同,从而摆脱 github pull request 冲突。
首先,安装 LLVM 9.0,它提供了 clang-format 9.0.0 版本,LLVM 的下载页面如下:
-
Ubuntu 系统:
sudo apt-get install clang-format-9
Windows 系统,下载预编译包并安装。
然后,安装 cpplint, pylint 和 yapf
Ubuntu 或 OSX:
$ sudo pip install cpplint $ which cpplint /path/to/cpplint $ pip install yapf==0.29.0 $ pip install pylint
Windows: 安装 Anaconda 进行包管理
$ pip install cpplint $ where cpplint C:/path/to/cpplint.exe $ pip install yapf==0.29.0 $ pip install pylint
使用
- 配置后,在编辑源代码文件时,linting 会自动启用。错误和警告会在 Visual Studio
Code
PROBLEMS
面板中列出。 - 代码格式化可以通过调出 Command Palette(Windows 中为
Shift+Ctrl+P
,OS X 中 为Shift+Command+P
)并输入Format Document
来完成。
提交
修正格式错误以后就可以提交 pull request 了。
开发环境
推荐使用 Visual Studio Code 作为编辑器。可以安装 Python、C/C++、代码拼写检查器
、autoDocstring、vim、远程开发等扩展。这些扩展的参考配置(即settings.json
)可
以在这里查看
。
如果更新 CPP 代码,需要从源文件重新编译 SINGA。建议使
用*-devel Docker
镜像中的原生构建工具或使用conda build
。
如果要只更新 Python 代码,您可以安装一次 SINGA,然后复制更新后的 Python 文件来替 换 Python 安装文件夹中的文件。
cp python/singa/xx.py <path to conda>/lib/python3.7/site-packages/singa/
工作流程
请参阅git 工作流程页面.