16

TLDR;

问题正如标题所说。

撞还是不撞?

我开始使用bump2version,然后发现了setuptools_scm(对于开发成熟的python程序来说相当新),现在我很困惑。

https://setuptools.readthedocs.io/en/latest/history.html#v20-6-0(古老的,我知道,我使用v40-xx)提到了bumpversion的集成,但是,没有提到过在后续的变更日志中放弃对凹凸版本的支持。

同时,setuptools 文档的 1.4 Extending and Reusing Setuptools 部分提到了 setuptools_scm(和 setuptools_svn)用于与 git、Hg 和 svn 集成。

BLAB(底线在底)

所以,问题是:bumpversion 是否已弃用/过时?


附录

为了进一步澄清,我将尝试更多地解释我的用例

我有一个包含多个子项目的超级项目。

super
├───base/
├───core/
├───lib/
├───version/requirements.txt
└───modules/
    ├───module-1/
    ├───module-2/
    ├───module-3/
    ├───module-4/
    └───module-5/

super 是一个主 git,每个子项目作为一个子模块(有自己的子模块),当然,每个子项目都维护自己的发布版本(这很容易)

该项目的发布由与其他所有内容相互兼容的已签署模块组成。

我目前的做法

我目前正在使用一个名为version的子模块,它维护一个requirements.txt+pyproject.toml并将整个东西拉到一个可分发的包中。遵循 https://github.com/pypa/pipfile/issues/27 中的指南https://caremad.io/posts/2013/07/setup-vs-requirement/

问题仍然存在:是否有一种规范的方法来做这样的事情?

4

1 回答 1

4

如果您使用setuptools_scm,您可能不需要bump2version. 反之亦然。

在 Python 中没有“规范”的方式来提升版本。存在多种工具,您可以使用您喜欢的工具(或根本不使用)。

变更日志中的消息setuptools是关于 setuptools 作者在他们自己的 Git 存储库中使用的内容。他们仍然使用bump2version,正如在这个配置文件中看到的那样。

这些项目名称相似setuptools_scmsetuptools但它们是完全独立的。

于 2021-05-12T22:15:33.173 回答