如何在开发中正确创建Python功能分支版本?(点和 PEP-440)

sh0*_*uit 7 python continuous-integration pip git-flow twine

我使用Gitflow开发原理开发了一个 Python 库,并有一个用于单元测试和包上传到(私有)PyPI 的CI阶段。我想在将上传的包合并回集成分支之前使用它进行测试。

其他包管理器(和流行的工具)允许版本标识符包含功能分支特定标识符,例如1.2.3-my-feature-alpha.1符合SemVer。然而,PEP-440禁止使用此类版本控制方案,twine甚至拒绝此类上传。

如果想要创建此类预发行版(可能与多个功能分支并行发生)且不存在符合 PEP-440 的版本标识符冲突,那么命名 Python 包版本的正确(或可行)方法是什么?

wob*_*obu 5

我也在想这个。

尽管不适合此用途,但您可能会滥用 PEP-440 中注明的本地版本标识符,请参阅:https ://www.python.org/dev/peps/pep-0440/#toc-entry-5

在你的情况下是1.2.3+my-feature.alpha.1

当查询具有兼容公共版本标识符(例如 )的版本时,具有本地版本标识符的版本将被忽略1.2.3,但在直接选择具有本地版本标识符的版本时仍然可以查询1.2.3+my-feature-alpha.1

我的评论不是建议,它只是反映了我对同一问题的想法。