You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bumpversion工具可选生成带dev-{build}后缀的版本?

解决Bumpversion可选生成dev-build版本的问题

问题描述

使用Bumpversion管理应用版本,希望为常规版本可选地添加dev-build后缀,但执行bumpversion dev时出现错误:

ValueError: The part has already the maximum value among ['dev'] and cannot be bumped.

当前配置如下:

[bumpversion]
current_version = 1.5.3
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(-(?P<dev>.*)-(?P<build>\d+))?
serialize = 
    {major}.{minor}.{patch}-{dev}-{build}
    {major}.{minor}.{patch}

[bumpversion:part:dev]
values = 
    dev

[bumpversion:part:build]
first_value = 1

错误原因

你给dev部分配置的可选值只有dev一个,执行bumpversion dev时,工具尝试"升级"dev字段,但已经是最大值,因此抛出错误。你的场景是添加/切换dev后缀,而非升级dev字段,所以需要调整配置或操作方式。

解决方案

方案一:调整配置支持dev字段的切换与build自增

修改配置文件bumpversion.cfg:

[bumpversion]
current_version = 1.5.3
# 调整正则,让dev字段仅匹配"dev"或为空,同时兼容有无dev-build后缀的版本
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)(-(?P<dev>dev)?-(?P<build>\d+))?
serialize = 
    {major}.{minor}.{patch}-{dev}-{build}
    {major}.{minor}.{patch}

[bumpversion:part:dev]
values = 
    dev
    # 添加空值,支持从开发版本切回正式版本
    ""

[bumpversion:part:build]
first_value = 1

对应的操作命令:

  • 从正式版本生成首个开发版本:
    bumpversion --set-part dev=dev build
    
    版本会从1.5.3变为1.5.3-dev-1
  • 升级build号:
    bumpversion build
    
    版本从1.5.3-dev-1变为1.5.3-dev-2
  • 切回正式版本:
    bumpversion --set-part dev=""
    
    版本回到1.5.3

方案二:直接指定新版本快速生成

如果不想修改配置,可直接通过--new-version参数生成开发版本:

bumpversion --new-version 1.5.3-dev-1

后续升级build号时,直接执行bumpversion build即可自动递增build数值。

内容的提问来源于stack exchange,提问作者Hardwired

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 13:32:43