【问题标题】:Automatically increment version when publishing python package to pypi将 python 包发布到 pypi 时自动递增版本
【发布时间】:2020-12-14 11:27:41
【问题描述】:

为了在我将新发行版上传到 PyPi 时获得正确的版本,我有 setup.py 询问 PyPi 当前版本是什么(见下面的函数),递增它,并将其用作 version 的参数setuptools.setup 电话。

果然,pip 安装有效,但从源代码安装无效(无论如何,我们不希望安装的版本号不正确)。

我可以编写一个部署脚本来执行增量并使用版本号调用setup(并让setup.py 使用当前版本)。

但我猜有一个最佳实践工具可以做我想做的事吗?

def current_pypi_version(package: str) -> str:
    req = urllib.request.Request(f'https://pypi.python.org/pypi/{package}/json')
    r = urllib.request.urlopen(req)
    if r.code == 200:
        t = json.loads(r.read())
        releases = t.get('releases', [])
        if releases:
            return sorted(releases)[-1]

【问题讨论】:

  • @phd:也许我的标题具有误导性。我可以获取当前的版本号(我的current_pypi_version 函数)并轻松实现。我的问题是关于在哪里放置这样的逻辑,因为 setup.py 可以用于打包(我很好)和安装(在这种情况下,我不应该使用增量版本)。

标签: python pypi python-packaging


【解决方案1】:

有一些第三方工具可以满足您的需求。例如,您可以尝试 http://pypi.org/p/bump(免责声明,我是作者/维护者),或者您可以尝试使用 https://pypi.org/p/setuptools-scm/ 从 SCM 元数据生成版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2012-01-25
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2022-10-04
    相关资源
    最近更新 更多