贡献

谢谢你的关心!Sanic一直在寻找贡献者。如果您不喜欢贡献代码,那么将docstring添加到源文件中是非常值得赞赏的。

我们致力于为所有人提供一个友好、安全和友好的环境,无论性别、性取向、残疾、种族、宗教或类似的个人特征如何。我们的 code of conduct 设定行为标准。

安装

为了在SANIC上开发(主要是为了运行测试),强烈建议从源代码安装。

因此,假设您已经克隆了repo,并且在已设置虚拟环境的工作目录中,然后运行:

pip3 install -e . ".[dev]"

依赖关系更改

Sanic 不使用 requirements*.txt 用于管理与之相关的任何依赖项的文件,以简化管理依赖项所需的工作。请确保您已阅读并理解文档中解释此方法的以下部分 sanic 管理中的依赖项 setup.py 文件。

相关性类型

使用

安装

要求

SANIC运行所需的最小裸依赖项

pip3 install -e .

测试要求/附加要求 [“测试”]

运行单元测试所需的依赖项 sanic

pip3 install -e '.[test]'

extras_require['dev']

增加贡献的额外开发需求

pip3 install -e '.[dev]'

extras_require['docs']

建立和增强SANIC文档所需的依赖性

pip3 install -e '.[docs]'

运行所有测试

为了运行Sanic的测试,建议使用如下毒素:

tox

就这么简单!

tox.ini 包含不同的环境。跑步 tox 如果没有任何参数,将运行所有unittests、执行lint和其他检查。

运行单元测试

tox environment -> [testenv]

要仅执行unittests,请运行 tox 在这样的环境下:

tox -e py36 -v -- tests/test_config.py
# or
tox -e py37 -v -- tests/test_config.py

运行绒布检查

tox environment -> [testenv:lint]

排列 flake8 , blackisort 检查。

tox -e lint

进行其他检查

tox environment -> [testenv:check]

执行其他检查。

tox -e check

运行静态分析

tox environment -> [testenv:security]

执行静态分析安全扫描

tox -e security

运行文档健全性检查

tox environment -> [testenv:docs]

对文档执行健全检查

tox -e docs

代码风格

为了保持代码的一致性,Sanic使用了以下工具。

  1. isort

  2. black

  3. flake8

伊索尔特

isort 对Python导入进行排序。它将导入按字母顺序分为三类。

  1. 内置

  2. 第三方

  3. 特定项目

黑色

black 是一个Python代码格式化程序。

薄片8

flake8 是一个Python风格的指南,它将以下工具打包为一个工具。

  1. PyFlakes

  2. pycodestyle格式

  3. Ned Batchelder的McCabe脚本

isort , blackflake8 检查在 tox 皮棉支票。

参考 tox 有关详细信息的文档。

拉动请求

所以拉请求审批规则非常简单:

  1. 所有请求都必须具有与其关联的更改日志详细信息。

  2. 所有请求都必须通过单元测试。

  3. 所有请求都必须由项目上至少一个当前协作者审阅和批准。

  4. 所有请求都必须通过flake8检查。

  5. 所有请求都必须与现有代码一致。

  6. 如果决定从任何公共接口中删除/更改任何内容,则应附带一条取消预测消息。

  7. 如果您实现了一个新特性,您应该至少有一个单元测试伴随它。

  8. 示例必须是以下之一:

    • 如何使用Sanic的示例

    • 如何使用Sanic扩展的示例

    • 如何使用Sanic和异步库的示例

Changelog

当您修复/贡献某些内容到 sanic 社区。这将使我们能够在发布期间生成更好的、定义良好的更改日志,这可以极大地帮助社区用户。

注解

简单说明公关的细节

详细描述公关的内容以及正在进行的更改或增强。这里不需要包含示例或任何其他细节。但是,在这里提供足够的上下文以让用户理解这一更改的全部内容以及为什么将其引入 sanic 代码库。

确保在第一行后留有行间距,以确保文档呈现干净

贡献类型

更改日志文件名格式

变更日志文件位置

特征

<git_issue>.feature.rst

changelogs

错误修正

<git_issue>.bugfix.rst

changelogs

改进的文档

<git_issue>.doc.rst

changelogs

折旧和清除

<git_issue>.removal.rst

changelogs

其他内部变更

<git_issue>.misc.rst

changelogs

文档

Sanic的文档是使用 sphinx . 指南以降价形式书写,可在 docs 文件夹,而模块引用是使用 sphinx-apidoc .

要从头生成文档:

sphinx-apidoc -fo docs/_api/ sanic
sphinx-build -b html docs docs/_build

# There is a simple make command provided to ease the work required in generating
# the documentation
make docs

HTML文档将在 docs/_build 文件夹。

警告

Sanic的主要目标之一是速度。在可用性、安全性或特性方面没有显著提高的情况下降低Sanic性能的代码可能不会合并。请不要让这吓到你!如果您对某个想法有任何顾虑,请打开一个问题进行讨论并提供帮助。