【问题标题】:How to set the production version for a python package using pbr如何使用 pbr 设置 python 包的生产版本
【发布时间】:2019-06-14 06:38:35
【问题描述】:

对于我的包裹,我有以下setup.py

import setuptools


setuptools.setup(
    setup_requires=['pbr>=2.0.0'],
    pbr=True
)

当我运行python setup.py sdist 时,被标记到tar 文件的版本是module-0.0.1.dev1207。如果我将setup.cfg 修改为具有以下条目

[metadata]
version = 1.0.1

标记到 tar 文件的版本是 -1.0.1.dev1207

我对@9​​87654329@ 做了一些阅读,发现它使用 git 提交和标签来创建版本控制。

在他们的documentation 上,它声明

可以通过两种方式管理版本 - postversioning 和 preversioning。 Postversioning 是默认设置,通过在 setup.cfg 元数据部分中设置 version 来启用 preversioning。在这两种情况下,版本字符串都是从 git 推断出来的。

如果标记了当前签出的修订,则使用该标记作为版本。

如果当前签出的修订没有标记,那么我们取最后一个标记的版本号并增加它以获得最小目标版本。

然后我们将 git 历史记录返回到上一个版本。在每次提交中,我们都会查找 Sem-Ver: 伪标头,如果找到,则对其进行解析以查找关键字。未知符号不是错误(因此人们不能楔入 pbr 或破坏他们的树),但我们会发出信息级别的警告消息。已知符号:功能、api-break、弃用、错误修复。缺少的 Sem-Ver 行等同于 Sem-Ver:错误修复。错误修正符号会导致版本的补丁级别增加。功能和弃用符号会导致次要版本增加。 api-break 符号会导致主要版本增加。

如果正在使用 postversioning,我们使用生成的版本号作为目标版本。

如果正在使用 preversioning,我们会检查 setup.cfg 元数据部分中设置的版本是否大于我们使用上述方法推断的版本。如果推断的版本大于 preversioning 值,我们会引发错误,否则我们使用 setup.cfg 中的版本作为目标。

然后,我们根据自上次发布以来的提交生成开发版本字符串,并包含当前的 git sha 以消除自发布以来具有相同提交数量的多个开发版本。

但这让我不确定以下问题:

  1. 如何启用预版本?
  2. 如果 pbr 似乎说至少有一个标签是 pbr 正常工作所必需的,那么如果在 repo 中没有标签或标签怎么办?
  3. 如何删除我的版本中的dev1207 部分?
  4. 如何设置setup.cfg 以从我的main.py 读取版本,而不必在setup.cfg 文件中指定它?

【问题讨论】:

    标签: python python-pbr


    【解决方案1】:

    默认情况下,PBR 中启用了 Preversioning 和 postversioning,并且基于字符串语义。有关the latest SemVer versioning standard can be found here 的更多信息。

    不过,我认为您正在寻找的是如何从 git 更新版本。为此,只需添加一个带有 SemVer 字符串的标签,例如 v1.0.1 甚至只是 1.0.1。其他选项 - 请参阅上面的 SemVer 文档。

    PBR 将使用它可以找到的最新标签 - 我相信当前签出的分支。如果它没有找到有效的标签(你的 repo 似乎就是这种情况),它肯定首先默认为 0.0.1,但也似乎恢复为使用setup.cfg 元数据中的版本字符串。

    一旦有了那个版本,如果在最后一个标记版本之后有任何提交,它会在版本字符串后附加一个.devN 后缀,为每个未标记的提交增加它。

    所以,我猜你有一个大型主分支,有 1209 次提交,但没有标签?反正就是这样。

    当你有一个版本时就开始标记你的提交,或者坚持使用 devN 风格的版本。这完全取决于你。

    【讨论】:

      猜你喜欢
      • 2018-06-29
      • 2019-09-19
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 2019-07-11
      • 2022-01-23
      • 1970-01-01
      • 2014-06-03
      相关资源
      最近更新 更多