当setuptools_scm可用时,是否需要bumpversion(或bump2version)?

Ahm*_*sud 7 python versioning setuptools

TLDR;

问题就是标题所说的。

撞还是不撞?

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

https://setuptools.readthedocs.io/en/latest/history.html#v20-6-0(我知道是古老的,我使用v40-xx)提到了umpversion的集成,但是从未提及过在随后的变更日志中删除了凹凸转换支持。

同时,setuptools文档的1.4扩展和重用Setuptools部分提到了与git,Hg和svn集成的setuptools_scm(和setuptools_svn)。

BLAB(底部底线)

因此,问题是:bumpversion是否已过时/已过时?


附录

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

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

super
????base/
????core/
????lib/
????version/requirements.txt
????modules/
    ????module-1/
    ????module-2/
    ????module-3/
    ????module-4/
    ????module-5/
Run Code Online (Sandbox Code Playgroud)

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

该项目的一个发行版包括与其他所有模块相互兼容的已签名模块。

我目前的做法

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

问题仍然存在:做这样的事情有规范的方法吗?

flo*_*sla 4

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

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

更改日志中的消息setuptools是关于 setuptools 作者在他们自己的 Git 存储库中使用的内容。他们仍然使用凹凸2版本,如配置文件中所示。

这些项目setuptools_scm名称setuptools相似,但它们完全独立。