V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wKong753900
V2EX  ›  程序员

闲聊一个话题, v1.0.0,各位公司对版本号有没什么好的管理方式,还是每次新版就增加上去?

  •  
  •   wKong753900 · 2025 年 8 月 16 日 · 5241 次点击
    这是一个创建于 147 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,v1.0.0
    想看看有没普遍认可的版本号管理规则,基本上安卓和 iOS 有版本号管理,后端和前端算是没有,当然最好的做法也是需要。
    各位的公司是怎么制定版本号的?
    38 条回复    2025-08-19 10:11:38 +08:00
    huangzhiyia
        1
    huangzhiyia  
       2025 年 8 月 16 日 via iPhone   ❤️ 6
    大破坏.小破坏.修复破坏
    wKong753900
        2
    wKong753900  
    OP
       2025 年 8 月 16 日
    搜到之前有篇文章: https://semver.org/lang/zh-CN/ (语义化版本)
    lnbiuc
        3
    lnbiuc  
       2025 年 8 月 16 日
    必须更新 不更新不能用.新功能/大 BUG.小 BUG
    cabudad
        4
    cabudad  
       2025 年 8 月 16 日
    我们是 MMPD ,不兼容的新功能更新主版本号,兼容的新功能更新次版本号,补丁更新修订版本号
    wKong753900
        5
    wKong753900  
    OP
       2025 年 8 月 16 日
    @cabudad 这个可以,我们有点类似
    gmfan
        6
    gmfan  
       2025 年 8 月 16 日
    无所谓,直接加一就好了,还省得动脑子
    xiuming
        7
    xiuming  
       2025 年 8 月 16 日   ❤️ 2
    我们是前后端统一版本号,从左第一位大版本重构位,第二位功能开发位,第三位功能修复位
    重构开发大版本 V1.0.0 -> V2.0.0
    从需求池提出需求 组成一个版本号 V1.1.0 -> V1.2.0 -> V1.3.0
    线上已有功能修复版本:V1.1.0 -> V1.1.1 -> V1.1.2

    确定开发需求后中途也不添加新需求,产品提新需求就迭代到后面版本中,也不影响现有版本开发。

    前后端(其他端)都是按版本号建仓库分支,发布时就认这分支版本代码打包。

    测试人员也按版本测试。

    第三位功能修复位前后端经常可能出现不统一,就按迭代最新版本编号建版本,不管那边落后都可以跳版本,最终都会归于统一。

    示例:
    第一次修复只有后端
    后端 V1.1.1
    前端 V1.1.0

    第二次修复前后端 最终统一
    后端 V1.1.2
    前端 V1.1.2

    版本编号不用在意数值
    w568w
        8
    w568w  
       2025 年 8 月 16 日   ❤️ 2
    SemVer 啊

    格式:破坏性更新.功能性更新/修复.小修复-alpha/beta.临时热修复+构建号

    如以下是递增的:

    1.0.0-alpha.1+13
    1.0.0-beta.1+16
    1.0.0-beta.2+18
    1.0.0-1+19
    1.2.0-3+31
    ……
    wKong753900
        9
    wKong753900  
    OP
       2025 年 8 月 16 日
    @xiuming 看起来挺不错的,不过真的能做到确定开发需求后中途也不添加新需求吗?产品提的新需求优先级最高呢?
    rocmax
        10
    rocmax  
       2025 年 8 月 16 日 via Android
    分支跟随 feature ,发版的时候打版本 tag
    iShinku
        11
    iShinku  
       2025 年 8 月 16 日   ❤️ 3
    自豪版本.默认版本.羞愧版本

    ---|--当你为发布感到自豪时进行
    ---------------|---只是正常的/可以发布的版本
    ----------------------------|----修复问题时尴尬到无法承认
    TigerK
        12
    TigerK  
       2025 年 8 月 16 日
    还是使用日期吧,比较容意理解,比如 v2025.08.16
    wKong753900
        13
    wKong753900  
    OP
       2025 年 8 月 16 日
    @TigerK 哈哈,简单粗暴,就是不够优雅
    Wataru
        14
    Wataru  
       2025 年 8 月 16 日 via iPhone
    @wKong753900 个人感觉最易懂的才是最优雅的,搞得人看不懂的看起来高大上实则没意义
    ShineyWang
        15
    ShineyWang  
       2025 年 8 月 16 日 via Android
    @wKong753900 语义版本有对应的 git 插件
    gitversion 可以自动生成版本
    xiuming
        16
    xiuming  
       2025 年 8 月 16 日
    @wKong753900 有流程在这 需求都是从产品的需求池提出来产品经理拍板的组成新版本 各小组评审过的 平时产品经理乱来代价就变高了 不排除老板和产品经理突然的紧急新需求

    2.1.0 正在开发 需求 1 需求 2 分配(生产力 1 生产力 2 生产力 3 )
    突然市场上微信做出红包了 新生成紧急 需求 3 红包玩法
    2.2.0 待开发 需求 3

    产品需要召开项目全组员进行变更 原 2.1.0 变更为 2.3.0

    生产力不足我们一般暂停版本 2.1.0
    2.2.0 分配(生产力 1 生产力 2 生产力 3 ) 开发 需求 3

    生产力充足我们两个版本一起开发
    2.2.0 分配(生产力 1 生产力 2 ) 开发 紧急需求 3
    2.3.0 分配(生产力 3 ) 开发 需求 1 需求 2

    2.2.0 上线后 2.2.0 分支代码合并 2.3.0 生产力释放 又可以全力开发版本 2.3.0
    2.3.0 分配(生产力 1 生产力 2 生产力 3 ) 开发 需求 1 需求 2
    wKong753900
        17
    wKong753900  
    OP
       2025 年 8 月 16 日
    @xiuming 这么规范
    wKong753900
        18
    wKong753900  
    OP
       2025 年 8 月 16 日
    @huangzhiyia 哈哈
    wakarimasen
        19
    wakarimasen  
       2025 年 8 月 16 日
    理想中是 SemVer
    实际上是 1.0.z z++
    MYDB
        20
    MYDB  
       2025 年 8 月 16 日
    a.b.c
    a 0~∞
    b 0~9
    c 0~99
    NessajCN
        21
    NessajCN  
       2025 年 8 月 16 日   ❤️ 1
    @chen05
    我早的项目就是这么发版的
    然后发现永远卡在 0.x.x ......
    ne6rd
        22
    ne6rd  
       2025 年 8 月 16 日
    版本号你们觉得需要根据项目类型来区分策略吗?
    客户端,库,API 感觉并不能一概而论
    COW
        23
    COW  
       2025 年 8 月 16 日
    版本号本身会使用语义化版本 semver2 ,实际使用中,会区分是构建版本还是发行版本,构建版本初期可以是 v0.0.0 作为前缀,发版后通过 git 从最近的 tag 获取。

    构建版本大概格式是:${baseVersion}.${buildNumber}+${buildDate}.${commitShort}
    发行版本取 ${baseVersion} 前缀

    其中还涉及容器 image tag 、artifact version ,具体实现上会有一些细微的差别。
    wKong753900
        24
    wKong753900  
    OP
       2025 年 8 月 16 日
    @COW 感觉可以
    kugua233
        25
    kugua233  
       2025 年 8 月 16 日
    我真的牛的不行,正常修复 bug ,偷偷补锅
    bowencool
        26
    bowencool  
       2025 年 8 月 16 日
    但凡你发帖前 Google 一下或 AI 一下...
    KongLiu
        27
    KongLiu  
       2025 年 8 月 16 日
    前后端的版本号就是日期,jenkins 根据时间打包,然后推到 Docker
    14
        28
    14  
       2025 年 8 月 16 日   ❤️ 1
    更新频繁的我都使用日期作为版本
    OneLiteCore
        29
    OneLiteCore  
       2025 年 8 月 17 日
    [大功能更新/大规模重构/第一个正式版] + [功能更新] + [小修复/小优化] ,基本是按照这个路数来的
    agagega
        30
    agagega  
       2025 年 8 月 17 日
    能持续使用的就两种:一种是前面提到的语义化版本,大版本是巨大的破坏式改动,中版本表示有兼容性改变,小版本只修 bug 保持兼容;另一种是去 tmd 版本,只用年月日做版本,不考虑兼容性,给我对齐最新的就行
    flyqie
        31
    flyqie  
       2025 年 8 月 17 日 via Android
    不同公司不同项目区别很大。

    需求比较多变的话,语义化版本用着用着就混乱了
    F4NNIU
        32
    F4NNIU  
       2025 年 8 月 17 日
    尽最大可能的严格遵循《语义化版本规范》 v2.0
    hwdq0012
        33
    hwdq0012  
       2025 年 8 月 17 日 via iPhone
    三个数字的版本号好像是微软提出的 msdn 有个很详细的文档
    harlen
        34
    harlen  
       2025 年 8 月 17 日
    1.0 1.1 2.0 2.1 3.0 3.1 2.2 然后 2.3 的版本 比 3.x 的版本还新
    realpg
        35
    realpg  
    PRO
       2025 年 8 月 17 日
    第一位, 主要版本, 大版本带来的是整体的 API 组重构, 或者完全不一样的基础架构, 或者战略意义的新功能集
    参考那种两三年变动一次大版本的常见 app 但是不固定的按时间跨度增加

    第一位的变动, 重新走软件著作权版本号流程, 第一位写在软著里面.

    第二位, 涉及必须强制更新的, 或者修改既有的大模块的大部分东西, 或者新增重大模块, 删除重大模块

    第三位, 每次更新都变 加几看情况 如果公司预期版本号最后一位支持 4-5 位数字 则最后一位每次 commit 都+1 或者加更大的步长, 然后每次有冲突的合并再+1, 没冲突的合并就以最后一次
    Tinyang
        36
    Tinyang  
       2025 年 8 月 18 日
    v182.25.9.29 我们组的实践是当前 sprint 号+release 时间+(sp ,一些特殊后缀)
    wangtian2020
        37
    wangtian2020  
       2025 年 8 月 18 日
    后端小老弟我不管他,前端我自己直接显示成 build@20250818 了
    define: {
    __BUILD_DATE__: dayjs().format(`YYYYMMDD`),
    }
    viayie
        38
    viayie  
       2025 年 8 月 19 日
    大型 C 项目,拆分出若干个子工程作为依赖,给他们做了语义化版本,但都不用,无奈最后做成了下面这种形式:

    $ echo $(git describe --tags)-$(date +%Y%m%d)
    1.0.0-3245-gd1521e1d60-20250819
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   917 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:24 · PVG 04:24 · LAX 12:24 · JFK 15:24
    ♥ Do have faith in what you're doing.