符合 PEP440 并且 git 描述了已部署包中可用的信息
PEP440 compliant AND git describe info available from deployed package
我想使用符合 PEP440 的 版本标识 ,但要包含 git 信息:
$ git describe --long
4.1-202-gab0f789
在 PEP 440 中有一章是关于 dvcs 的,但我不清楚 .devN 后缀如何保存非数字散列,如上所示:ab0f789
。我需要一种方法来从我的一个生产脚本中请求 4.1-202-gab0f789
信息,所以我可以在 setup.py
中的什么地方放置项目元数据?
该部分告诉您不要使用哈希:
As hashes cannot be ordered reliably such versions are not permitted in the public version field.
强调我的。
他们提供 .devN
作为替代方案。如果您要从 git 存储库发布开发人员版本,请对它们进行编号,例如 .dev0
、.dev1
等。您可以使用标签来跟踪这些版本并将它们追溯到特定的修订版.
但是如果您继续阅读,有一种方法可以将散列添加为 local version number:
Identifying hash information may also be included in local version labels.
添加一个 +
,然后是你的散列(以 g
为前缀以确保不将全 digit 散列作为数字进行比较):
4.1.dev0+gab0f789
不过,本地版本号只能在创建本地非索引包或安装项目时使用。例如,不要在 PyPI 上放置带有 +<hash>
的版本。但是,如果您从持续集成服务器生成包供开发人员测试,本地版本号就可以了。
setuptools-scm
project 使用该方案在基于非标记 git 提交的版本中包含 git 哈希。
为此使用 dev
附录的问题在于,例如 4.1dev0+gab0f789
在语义上 在 之前 4.1
发布,而 4.1-202-gab0f789
来自 git describe
实际上意味着它是 202 commits behind 4.1
.
我想使用符合 PEP440 的 版本标识 ,但要包含 git 信息:
$ git describe --long
4.1-202-gab0f789
在 PEP 440 中有一章是关于 dvcs 的,但我不清楚 .devN 后缀如何保存非数字散列,如上所示:ab0f789
。我需要一种方法来从我的一个生产脚本中请求 4.1-202-gab0f789
信息,所以我可以在 setup.py
中的什么地方放置项目元数据?
该部分告诉您不要使用哈希:
As hashes cannot be ordered reliably such versions are not permitted in the public version field.
强调我的。
他们提供 .devN
作为替代方案。如果您要从 git 存储库发布开发人员版本,请对它们进行编号,例如 .dev0
、.dev1
等。您可以使用标签来跟踪这些版本并将它们追溯到特定的修订版.
但是如果您继续阅读,有一种方法可以将散列添加为 local version number:
Identifying hash information may also be included in local version labels.
添加一个 +
,然后是你的散列(以 g
为前缀以确保不将全 digit 散列作为数字进行比较):
4.1.dev0+gab0f789
不过,本地版本号只能在创建本地非索引包或安装项目时使用。例如,不要在 PyPI 上放置带有 +<hash>
的版本。但是,如果您从持续集成服务器生成包供开发人员测试,本地版本号就可以了。
setuptools-scm
project 使用该方案在基于非标记 git 提交的版本中包含 git 哈希。
为此使用 dev
附录的问题在于,例如 4.1dev0+gab0f789
在语义上 在 之前 4.1
发布,而 4.1-202-gab0f789
来自 git describe
实际上意味着它是 202 commits behind 4.1
.