mirror of
https://github.com/open-compass/opencompass.git
synced 2025-05-30 16:03:24 +08:00
2.7 KiB
2.7 KiB
为 OpenCompass 做贡献
感谢你对于OpenCompass的贡献!我们欢迎各种形式的贡献,包括但不限于以下几点。
- 修改错别字或修复bug
- 添加文档或将文档翻译成其它语言
- 添加新功能和组件
工作流程
我们建议潜在的贡献者遵循以下的贡献工作流程。
- Fork并拉取最新的OpenCompass仓库,按照开始使用来设置环境。
- 检出一个新的分支(不要使用master或dev分支来创建PR)
git checkout -b xxxx # xxxx 是新分支的名称
- 编辑相关文件,并且遵循下面提到的代码风格
- 使用预提交钩子来检查和格式化你的更改。
- 提交你的更改
- 创建一个带有相关信息的PR
代码风格
Python
我们采用PEP8作为首选的代码风格。
我们使用以下工具进行linting和格式化:
- flake8: 一个围绕一些linter工具的封装器。
- isort: 一个用于排序Python导入的实用程序。
- yapf: 一个Python文件的格式化器。
- codespell: 一个Python实用程序,用于修复文本文件中常见的拼写错误。
- mdformat: mdformat是一个有明确定义的Markdown格式化程序,可以用来在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-config中。
在你克隆仓库后,你需要安装并初始化预提交钩子。
pip install -U pre-commit
从仓库文件夹运行
pre-commit install
之后,在每次提交时都会强制执行代码 linters 和格式化器。
在你创建PR前,确保你的代码通过了 lint 检查并被 yapf 格式化。