释放Flake8

有没有什么是很难找到的关于如何 Flake8 被释放。

  • 我们使用 专业 发布(例如,2.0.0,3.0.0等),用于可能向后不兼容的大型发布。

  • 我们使用 少数的 包含特性和依赖项版本更改的发行版(例如,2.1.0、2.2.0、3.1.0、3.2.0等)。

  • 我们使用 补丁 发布(例如,2.1.1、2.1.2、3.0.1、3.0.10等),用于包含 only 错误修复。

在这个意义上,我们遵循语义版本控制。但我们更像是一套指导方针。我们也不是完美的,所以我们可能会犯错误,这很好。

及主版本升级软件

主要版本通常与向后不兼容相关。 Flake8 希望避免这些,但偶尔会需要它们。

历史上, Flake8 已生成主要版本:

  • 取消认可依赖项(2.0)

  • 大规模重构(2.0、3.0)

  • 巧妙打破CLI更改(3.0)

  • 中断对插件接口的更改(3.0)

主要版本还可以包含:

  • 错误修复(可能有向后不兼容的解决方案)

  • 新特点

  • 依赖关系更改

小版本

小版本中通常有新功能,我们将其大致定义为:

  • 新命令行标志

  • 不会破坏向后兼容性的新行为

  • 依赖关系检测到的新错误,例如,通过提高PyFlakes的上限,我们引入F405

  • 错误修复

补丁发布

补丁版本只应该有错误修复。

我们不更新补丁版本中的依赖约束。如果不安装 Flake8 在PyPI中,您的打包程序有可能使用不同的需求。一些下游的再分配程序已经被认为是强制执行新版本的PyFlakes、pep8/PyCodestyle或McCabe。使用时偶尔会造成破损 Flake8 . 在这种情况下,我们帮不了你什么忙。

过程

为了准备发布,我们在 docs/source/releases/ 命名: {{{{ release_number }}}}.rst (例如, 3.0.0.rst ). 我们注意到错误修复、改进和依赖性版本的更改,以及用户需要注意的其他事项。

发布前,必须通过以下毒物测试环境:

  • Python2.7(又名。, tox -e py27

  • Python3.6(又名。, tox -e py36

  • Python3.7(又名。, tox -e py37

  • PyPy(又名。, tox -e pypy

  • 短绒(又名。, tox -e linters

我们标记传递这些项并包含发行说明的最新提交。

最后,我们跑了 tox -e release 构建源代码分发(例如。, flake8-3.0.0.tar.gz ),然后用绳线将它们上载到PyPI。