vnpy/docs/contribution.md
2019-04-27 13:19:31 +08:00

75 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 贡献代码
---
## 创建PR
我们欢迎任何人贡献代码到vn.py。
如果希望贡献代码请使用github的PR(Pull Request)的流程。
PR流程大致如下
---
1. [创建 Issue][CreateIssue] - 对于较大的改动(如新功能,大型重构等)最好先开issue讨论一下 较小的improvement(如文档改进bugfix等)直接发PR即可
2. Fork [vn.py][#GithubVnpy] - 点击右上角**Fork**按钮
3. Clone你自己的fork: ```git clone https://github.com/$userid/vnpy.git```
> 如果你的fork已经过时需要手动[sync][GithubDocForSync]
4. 从**dev**创建你自己的branch: ```git checkout -b $my_feature_branch dev```
5. 在$my_feature_branch上修改并将修改push到你Fork之后的仓库上
6. 创建从你的fork的$my_feature_branch分支到主项目的**dev**分支的[Pull Request]:
[点开这里][CreatePR] ,再点击**compare across forks**选择需要的fork和branch创建PR
---
创建完PR之后请耐心等待我们一旦有空就会检查PR一旦你的代码有用且[符合要求](#代码风格),就会被合并!
---
## 代码风格
在为vn.py写代码的时候需要遵循一些基本的规则否则你的代码可能无法被merge。
这些规则包括:
1. [命名规则](#命名规则)
2. [代码格式](#代码格式)
3. [代码质量检查](#代码质量检查)
### 命名规则
我们的代码的命名规则如下:
* 类属性、类方法、参数和变量使用小写加下划线的形式
* 类名使用驼峰式命名
* 常量使用大写加下划线的形式
例如:
```python
DEFAULT_PATH = "/tmp/vn.py/"
class ClassA:
def __init__(self, arg_one: int, arg_two: str):
if arg_two is None:
arg_two = DEFAULT_PATH
self.property_one = arg_one
variable_one = "some string"
```
### 代码格式
我们对代码格式没有特别严格的要求但是至少要符合pep8标准并且额外要在类和所有函数下面带上docstring(就是一段"""""")。
要让代码符合pep8标准写完代码之后使用[autopep8](https://github.com/hhatto/autopep8)格式化你的代码就可以了:
```bash
autopep8 --in-place --recursive .
```
### 代码质量检查
使用[flake8](https://pypi.org/project/flake8/)检查你的代码确保没有error和warning。
在项目根目录下运行```flake8```就可以检查出代码中书写不严谨的地方了。如果检查出error或者warning说明你的代码需要进行一些修改以提升质量。
[GithubVnpy]:https://github.com/vnpy/vnpy
[GithubDocForSync]:https://help.github.com/articles/syncing-a-fork/
[CreateIssue]:https://github.com/vnpy/vnpy/issues/new
[CreatePR]:https://github.com/vnpy/vnpy/compare?expand=1