♥️贡献¶
感谢您的关注!Sanic一直在寻找贡献者。如果您对贡献代码、将文档字符串添加到源文件或帮助 Sanic User Guide 如能提供文档或实现示例,我们将不胜感激!
我们致力于为所有人提供友好、安全和欢迎的环境,无论性别、性取向、残疾、种族、宗教或类似的个人特征。我们的 code of conduct 设定行为标准。
安装¶
要在Sanic上进行开发(主要是运行测试),强烈建议从源代码安装。
因此,假设您已经克隆了repo,并且在已设置虚拟环境的工作目录中,然后运行:
pip install -e ".[dev]"
依赖关系更改¶
Sanic
不使用 requirements*.txt
用于管理与之相关的任何依赖项的文件,以简化管理依赖项所需的工作。请确保您已阅读并理解文档中解释此方法的以下部分 sanic
管理中的依赖项 setup.py
文件。
相关性类型 |
使用 |
安装 |
---|---|---|
要求 |
SANIC运行所需的最小裸依赖项 |
|
测试要求/附加要求 [“测试”] |
运行单元测试所需的依赖项 |
|
extras_require['dev'] |
增加贡献的额外开发需求 |
|
extras_require['docs'] |
建立和增强SANIC文档所需的依赖性 |
|
运行所有测试¶
为了运行Sanic的测试,建议使用如下毒素:
tox
就这么简单!
tox.ini
包含不同的环境。跑步 tox
如果没有任何参数,将运行所有unittests、执行lint和其他检查。
运行单元测试¶
tox
environment -> [testenv]
要仅执行unittests,请运行 tox
在这样的环境下:
tox -e py37 -v -- tests/test_config.py
# or
tox -e py310 -v -- tests/test_config.py
运行绒布检查¶
tox
environment -> [testenv:lint]
排列 flake8
, black
和 isort
检查。
tox -e lint
运行类型注记检查¶
tox
environment -> [testenv:type-checking]
Permform mypy
支票。
tox -e type-checking
进行其他检查¶
tox
environment -> [testenv:check]
执行其他检查。
tox -e check
运行静态分析¶
tox
environment -> [testenv:security]
执行静态分析安全扫描
tox -e security
运行文档健全性检查¶
tox
environment -> [testenv:docs]
对文档执行健全检查
tox -e docs
代码风格¶
为了保持代码的一致性,Sanic使用了以下工具。
伊索尔特¶
isort
对Python导入进行排序。它将导入按字母顺序分为三类。
内置
第三方
特定项目
黑色¶
black
是一个Python代码格式化程序。
薄片8¶
flake8
是一个Python风格的指南,它将以下工具打包为一个工具。
PyFlakes
pycodestyle格式
Ned Batchelder的McCabe脚本
时隙检查¶
slotscheck
确保不会出现任何问题 __slots__
(例如,基类中的重叠或缺少槽)。
isort
, black
, flake8
和 slotscheck
检查在执行期间执行 tox
皮棉支票。
这个 easiest 使您的代码符合的方法是在提交之前运行以下代码。
make pretty
参考 tox 有关详细信息的文档。
拉动请求¶
所以拉请求审批规则非常简单:
所有请求都必须通过单元测试。
所有Pull请求必须至少由Core Developer团队的一名现任成员审查和批准。
所有请求都必须通过flake8检查。
所有拉式请求必须匹配
isort
和black
要求。所有拉式请求必须是 PROPERLY 类型批注,除非给予豁免。
所有请求都必须与现有代码一致。
如果您决定从任何公共接口中删除/更改任何内容,则应根据我们的 deprecation policy 。
如果您实现了一个新特性,您应该至少有一个单元测试伴随它。
示例必须是以下之一:
如何使用Sanic的示例
如何使用Sanic扩展的示例
如何使用Sanic和异步库的示例
文档¶
Sanic的API文档是使用 sphinx 使用以下命令自动生成模块引用 sphinx-apidoc
。
用户指南位于 sanic-guide 存储库。
要从头生成文档:
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
文件夹。
您可以运行以下命令来拥有包含API文档的实时开发服务器
make docs-serve
有关如何在其中做出贡献的文档,请参阅用户指南回购。
警告
Sanic的主要目标之一是速度。在可用性、安全性或特性方面没有显著提高的情况下降低Sanic性能的代码可能不会合并。请不要让这吓到你!如果您对某个想法有任何顾虑,请打开一个问题进行讨论并提供帮助。