代码之家  ›  专栏  ›  技术社区  ›  Kim Stacks

当我标记并推送到pypi后,需要将提交添加到同一发布版本时,我该怎么办?

  •  0
  • Kim Stacks  · 技术社区  · 4 年前

    我使用的是setuptools和setuptools_scm。

    我使用的版本方案是发布分支semver。

    假设我创建了一个版本为0.1.0的分支,并有3个提交。

    我完成了,然后我从版本0.1.0的头部创建了一个标签0.1.0

    我将标记和分支都推送到我的github存储库。然后我使用麻线来打包python库,并以0.1.0的版本上传到pypi

    然后我从main分支,制作一个版本-0.1.1,并对其进行处理。

    几天后,我意识到0.1.0上有一个严重的错误。因此,我签回版本-0.1.0,并向本地分支添加了1个提交。

    那我现在该怎么办?

    我绝对不想在pypi上出现错误的0.1.0版本。我已经完成了0.1.1的一半。因此,将主分支外的修补程序创建为0.1.1也是很奇怪的。

    我可以替换pypi中的0.1.0吗?我应该删除github远程回购上的0.1.0标签吗?

    0 回复  |  直到 4 年前
        1
  •  1
  •   a_guest    4 年前

    如果你向PyPI发布了一个不应该被任何人使用的版本,你可以 yank 释放。这意味着它不会列在项目页面上,安装程序也不会考虑它,比如 pip 在搜索兼容版本时(虽然没有删除,但可以通过强制安装 == )。

    正在处理 0.1.1 意味着这只包括 0.1.0 。因此,当您发现该严重错误时,您可以将其包含在 0.1.1 修复并释放它。然后您可以继续上的其余修复 0.1.2 。

    现有的发布不应该被修改,因此,当您完成一个发布时,没有理由保留发布分支。通常,您会标记 x.y.z 在主分支上发布,然后从那里构建。