符合PEP440的AND git描述了已部署软件包提供的信息

时间:2016-02-20 10:38:14

标签: python git continuous-integration

我想使用符合PEP440的版本标识,但有办法包含git信息:

$ git describe --long
4.1-202-gab0f789

在PEP 440中有一章关于dvcs,但我不清楚.devN后缀如何能够保存非数字哈希,如上所述:ab0f789。我需要一种方法来从我的一个脚本请求生成4.1-202-gab0f789信息,那么我可以在setup.py中放置项目元数据吗?

2 个答案:

答案 0 :(得分:5)

该部分告诉您使用哈希:

  

由于无法可靠地订购哈希公共版本字段中不允许使用此类版本。

强调我的。

他们提供__COUNTER__作为替代方案。如果您要从git存储库发布开发人员版本,请对其进行编号,以便.devN.dev0等。您可以使用标记来跟踪这些版本并将其跟踪回特定版本。

但如果您继续阅读,有一种方法可以将哈希标记为GCC documentation on macros

  

识别哈希信息也可能包含在本地版本标签中。

添加.dev1,然后添加哈希:

+

本地版本号只能在创建本地非索引打包或项目安装时使用。例如,不要在PyPI上放置4.1.dev0+gab0f789 的版本。但是,如果您要从持续集成服务器生成包供开发人员测试,那么本地版本号就可以了。

答案 1 :(得分:1)

使用dev附录的问题在于,例如4.1dev0+gab0f789在<{strong> 4.1版本之前在语义上,而4.1-202-gab0f789来自git describe 4.1实际上意味着202提交落后于 toString()