如何为 Flask 做出贡献 — Flask 文档
如何为 Flask 做贡献
感谢您考虑为 Flask 做出贡献!
支持问题
请不要为此使用问题跟踪器。 使用以下资源之一解决有关您自己代码的问题:
- 我们 Discord 聊天中的
#get-help
频道:https://discordapp.com/invite/t6rrQZH- FreeNode 上的 IRC 频道
#pocoo
链接到 Discord,但首选 Discord。
- FreeNode 上的 IRC 频道
- 用于长期讨论或更大问题的邮件列表 flask@python.org。
- 询问 堆栈溢出 。 首先使用 Google 搜索:
site:stackoverflow.com flask {search term, exception message, etc.}
报告问题
- 描述你期望发生的事情。
- 如果可能,请包含 最小可重现示例 以帮助我们确定问题。 这也有助于检查问题是否与您自己的代码无关。
- 描述实际发生的事情。 如果有异常,包括完整的回溯。
- 列出您的 Python、Flask 和 Werkzeug 版本。 如果可能,请检查此问题是否已在存储库中修复。
提交补丁
- 使用 Black 自动格式化您的代码。 这应该作为一个 git pre-commit 钩子为你完成,它会在你运行
pip install -e .[dev]
时安装。 您可能还希望使用 Black 的 编辑器集成 。 - 如果您的补丁应该解决错误,请包括测试,并清楚地解释错误发生的情况。 确保测试在没有补丁的情况下失败。
- 在您的提交消息中包含一个类似“Fixes #123”的字符串(其中 123 是您修复的问题)。 请参阅 使用关键字关闭问题 。
第一次设置
下载并安装 最新版本的 git。
-
确保您有一个 GitHub 帐户 。
单击 Fork 按钮将 Flask 分叉到您的 GitHub 帐户。
在本地克隆你的GitHub fork:
将主存储库添加为远程以稍后更新:
创建一个虚拟环境:
使用开发依赖项以可编辑模式安装 Flask:
安装 预提交框架 。
安装预提交钩子:
开始编码
创建一个分支来确定您要处理的问题。 如果您要提交错误或文档修复,请从最新的“.x”分支分支:
如果您要提交功能添加或更改,请从“master”分支分支:
使用您最喜欢的编辑器进行更改,随时提交。
包括涵盖您所做的任何代码更改的测试。 确保在没有补丁的情况下测试失败。 运行测试。。
将您的提交推送到 GitHub 并 使用以下命令创建拉取请求 :
庆祝🎉
运行测试
使用以下命令运行基本测试套件:
这仅运行当前环境的测试。 这是否相关取决于您正在处理 Flask 的哪个部分。 当您提交拉取请求时,Travis-CI 将运行完整套件。
完整的测试套件需要很长时间才能运行,因为它测试 Python 和依赖项的多种组合。 您需要安装 Python 2.7、3.4、3.5、3.6 和 PyPy 2.7 才能运行所有环境。 然后运行:
运行测试覆盖率
生成没有测试覆盖的行的报告可以指示从哪里开始贡献。 使用 coverage
运行 pytest
并在终端上生成报告并作为交互式 HTML 文档:
阅读有关 覆盖率 的更多信息。
使用 tox
运行完整的测试套件将结合所有运行的覆盖率报告。
注意:零填充文件模式
此存储库包含多种零填充文件模式,在将此存储库推送到 GitHub 以外的 git 主机时可能会导致问题。 修复此问题会破坏提交历史,因此我们建议忽略这些警告。 如果推送失败并且您使用的是自托管的 Git 服务,例如 GitLab,您可以在管理面板中关闭存储库检查。
这些文件在克隆时也可能导致问题。 如果你有
或者
在您的 git 配置文件中设置,克隆此存储库将失败。 唯一的解决方案是在克隆时将上述两个设置都设置为 false,然后在克隆完成后将它们设置回 true。