setuptools在哪里可以找到包的版本?

2024-03-29 15:37:05 发布

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

我想知道a github package有什么版本。我在本地建造。在release process中,我发现:

VERSION=$(python setup.py --version)

在我的回购中,每当我运行这个程序时,我会得到:

^{pr2}$

但我不知道这是从哪里来的。版本1.0.9.dev29既不在setup.cfg中,也不在单独的VERSION文件中。回购中没有版本文件或类似文件。我不明白setuptools是如何派生出这个版本id的。documentation没有给出任何提示。在

python setup.py --version命令是如何工作的?在


Tags: 文件py程序版本githubpackagereleaseversion
2条回答

根据接受的答案,信息来自git repo,基于标记,使用pbr扩展名。在

不包括实际字符串是如何确定的。pbr使用在pbr文档中根据repo中创建的最新标记指定的算法(我假设搜索当前签出的分支,但不确定)。在

1.0.9.dev29字符串可能意味着在repo中有一个1.0.9标记,其中29个提交没有标记。默认情况下,pbr将向不带标记的新提交添加一个.devN后缀,该后缀将随着每个新的未标记提交而递增。在

如果您在最新提交中添加一个1.0.10标记,那么它将是新版本,但是如果您添加另一个没有标记的提交,它将是1.0.9.dev30。在

here for More info on the Semantic Versioning used by ^{}

setup.py version列出从元数据获取的包的版本。您的特定项目使用^{} package来处理元数据:

setup_requires=['pbr>=1.9', 'setuptools>=17.1', 'pytest-runner'],

pbrPython Build reasonaliness)通过查看当前git历史记录在包构建时设置版本,请参阅pbr文档的Version section

Versions can be managed two ways - postversioning and preversioning. Postversioning is the default, and preversioning is enabled by setting version in the setup.cfg metadata section. In both cases version strings are inferred from git.

If the currently checked out revision is tagged, that tag is used as the version.

因此,当开发人员运行setup.py来构建发行版时,此时pbr会查看git存储库元数据并提取版本号,并将其包含在所构建的发行版中;tar.gz源tarball包含一个带有版本的PKG-INFO文件。在

相关问题 更多 >