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

2024-04-26 03:24:13 发布

您现在位置:Python中文网/ 问答频道 /正文

TLDR

问题就如标题所说。在

撞还是不撞?在

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

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

同时,Setuptools文档的1.4扩展和重用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/中有所借鉴

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


Tags: 模块项目httpsiogitversionsvnscm