如何为 Flask 做出贡献 — Flask 文档

来自菜鸟教程
Flask/docs/2.0.x/contributing
跳转至:导航、​搜索

如何为 Flask 做贡献

感谢您考虑为 Flask 做出贡献!

支持问题

请不要为此使用问题跟踪器。 问题跟踪器是一种用于解决 Flask 本身中的错误和功能请求的工具。 使用以下资源之一解决有关使用 Flask 的问题或您自己的代码的问题:


报告问题

在您的帖子中包含以下信息:

  • 描述你期望发生的事情。
  • 如果可能,请包含 最小可重现示例 以帮助我们确定问题。 这也有助于检查问题是否与您自己的代码无关。
  • 描述实际发生的事情。 如果有异常,包括完整的回溯。
  • 列出您的 Python 和 Flask 版本。 如果可能,请检查此问题是否已在最新版本或存储库中的最新代码中修复。


提交补丁

如果您要提交的内容没有未解决的问题,请在进行 PR 之前先打开一个进行讨论。 您可以处理任何没有与之相关联的公开 PR 或分配给它的维护者的问题。 这些显示在侧边栏中。 无需询问您是否可以解决您感兴趣的问题。

在您的补丁中包含以下内容:

  • 使用 Black 格式化您的代码。 如果您使用以下说明安装 pre-commit,此工具和其他工具将自动运行。
  • 如果您的补丁添加或更改代码,则包括测试。 确保在没有补丁的情况下测试失败。
  • 更新任何相关的文档页面和文档字符串。 文档页面和文档字符串应包含 72 个字符。
  • CHANGES.rst 中添加一个条目。 使用与其他条目相同的样式。 还包括相关文档字符串中的 .. versionchanged:: 内联更改日志。

第一次设置

  • 下载并安装 最新版本的 git

  • 使用您的 用户名电子邮件 配置 git。

    $ git config --global user.name 'your name'
    $ git config --global user.email 'your email'
  • 确保您有一个 GitHub 帐户

  • 单击 Fork 按钮将 Flask 分叉到您的 GitHub 帐户。

  • 在本地克隆主存储库。

    $ git clone https://github.com/pallets/flask
    $ cd flask
  • 添加你的叉子作为遥控器来推送你的工作。 将 {username} 替换为您的用户名。 这将远程命名为“fork”,默认的 Pallets 远程为“origin”。

    $ git remote add fork https://github.com/{username}/flask
  • 创建一个虚拟环境。

  • 升级 pip 和 setuptools。

    $ python -m pip install --upgrade pip setuptools
  • 安装开发依赖项,然后以可编辑模式安装 Flask。

    $ pip install -r requirements/dev.txt && pip install -e .
  • 安装预提交挂钩。

    $ pre-commit install


开始编码

  • 创建一个分支来确定您要处理的问题。 如果您要提交错误或文档修复,请从最新的“.x”分支分支。

    $ git fetch origin
    $ git checkout -b your-branch-name origin/2.0.x

    如果您要提交功能添加或更改,请从“主”分支分支。

    $ git fetch origin
    $ git checkout -b your-branch-name origin/main
  • 使用您最喜欢的编辑器进行更改,随时提交

  • 包括涵盖您所做的任何代码更改的测试。 确保在没有补丁的情况下测试失败。 如下所述运行测试。

  • 将您的提交推送到您在 GitHub 上的分叉并 创建拉取请求 。 链接到拉取请求中使用 fixes #123 解决的问题。

    $ git push --set-upstream fork your-branch-name


运行测试

使用 pytest 运行基本测试套件。

$ pytest

这将运行当前环境的测试,这通常就足够了。 当您提交拉取请求时,CI 将运行完整套件。 如果您不想等待,可以使用 tox 运行完整的测试套件。

$ tox

运行测试覆盖率

生成没有测试覆盖的行的报告可以指示从哪里开始贡献。 使用 coverage 运行 pytest 并生成报告。

$ pip install coverage
$ coverage run -m pytest
$ coverage html

在浏览器中打开 htmlcov/index.html 以浏览报告。

阅读有关 覆盖率 的更多信息。


构建文档

使用 Sphinx 在 docs 目录中构建文档。

$ cd docs
$ make html

在浏览器中打开 _build/html/index.html 以查看文档。

阅读有关 Sphinx 的更多信息。