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

What do I do when i need to add commits to the same release version after i tagged and pushed to pypi?

我正在使用设置工具和 setuptools_scm。

我用的version_scheme是release-branch-semver.

假设我创建了一个分支 release-0.1.0 并且有 3 个提交。

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

我将标签和分支都推送到我的 github 存储库。然后我用twine打包python库上传到pypi为0.1.0

然后我从 main 分支出来制作一个 release-0.1.1 并开始工作。

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

那我现在该怎么办?

我绝对不希望 pypi 上的错误版本 0.1.0 保持原样。我已经在做 0.1.1 了。因此,在主分支之外创建一个修补程序作为 0.1.1 也很奇怪。

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

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

致力于 0.1.1 意味着这仅包括 0.1.0 的修复。所以当你发现那个严重的错误时,你可以将它包含在 0.1.1 修复中并发布它。然后您可以继续 0.1.2.

上的剩余修复

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