我想了解github package的版本。我在本地建造它。在release process中,我发现了这个:
VERSION=$(python setup.py --version)
在我的回购中,每当我运行时,我都会得到:
» python setup.py --version
1.0.9.dev29
但我不知道这是从哪里来的。版本1.0.9.dev29
既不在setup.cfg
中,也不在单独的VERSION
文件中。回购中没有版本文件或类似文件。我不明白setuptools
如何能够推导出这个版本ID。 documentation没有提供任何提示。
python setup.py --version
命令如何工作?
答案 0 :(得分:2)
psql -f script.sql
列出从元数据中获取的包的版本。您的特定项目使用pbr
package来处理元数据:
setup.py --version
setup_requires=['pbr>=1.9', 'setuptools>=17.1', 'pytest-runner'],
( Python Build Reasonableness )通过查看当前git历史记录在包构建时设置版本,请参阅pbr
文档的Version section :
版本可以通过两种方式管理 - 后期修改和预翻版。 Postversion是默认设置,通过在setup.cfg元数据部分中设置版本来启用preversion。在这两种情况下,都可以从git中推断出版本字符串。
如果标记了当前检出的修订版本,则该标记将用作版本。
因此,当开发人员运行pbr
来构建发行版时, setup.py
会查看git存储库元数据并提取版本号,并将其包含在发行版中建造的; pbr
源tarball包含带有版本的tar.gz
文件。
答案 1 :(得分:0)
每个接受的答案都来自您的git存储库,基于标签并使用pbr
扩展名。
不包括如何确定实际字符串。 pbr
使用pbr
文档中指定的算法,该算法基于回购中创建的最新标签(我假设搜索的是当前签出的分支,但不确定)。
1.0.9.dev29
字符串可能意味着您在存储库中有一个1.0.9
标记,其中29个提交没有标记。默认情况下,pbr
会将.devN
后缀添加到不带标签的新提交中,并随每个新的未加标签的提交而增加。
如果将1.0.10
标记添加到最新的提交中,则将是新版本,但是如果添加另一个没有标记的提交,则将是1.0.9.dev30
。
请参见here for More info on the Semantic Versioning used by pbr