SemVer
软件版本号管理规范,采用 MAJOR.MINOR.PATCH 三段式格式,分别对应破坏性变更、向后兼容新增功能和向后兼容问题修复,是现代开源软件版本管理的事实标准
核心事实
时间轴 (近 90 天)
现实中不少项目在 0.x 或预发布阶段并不严格遵循 SemVer 约定,且自动化流水线可能因任一包变更而统一抬升补丁号。
「API 表面兼容」不等于「运行时行为完全不变」:本次凭证解析时机的调整属于行为层面的变化,仍可能影响依赖旧时序的代码。
npm 生态遵循 SemVer(语义化版本)规范,版本号 X.Y.Z 分别对应主版本、次版本和补丁版本,补丁位递增通常只包含向后兼容的缺陷修复与依赖同步
SemVer 约束的是包自身对外暴露的公共 API,并不约束其内部依赖的升级范围
SemVer 本身只是一种约定,并非强制规范,发布者是否严格遵守取决于项目治理。
SemVer 规定 patch 位只用于向后兼容的问题修复,但这一约定建立在单个包独立演进的前提上;AI SDK 采用 monorepo 联动发版,patch 号更多是构建序号而非严格的兼容性契约。
npm 生态遵循 SemVer 约定,3.0.43 中主版本号 3 表示存在潜在破坏性变更的边界,次版本 0 表示无新功能,补丁号 43 表示第 43 次向后兼容的修复。
SemVer 是社区约定而非强制机制,个别包仍可能在补丁版本中引入细微行为变化。
范围声明 ^2.0.0 表示允许自动升级到 2.x.x 内任意版本,但不会跨到 3.0.0。
使用依赖范围声明(如 ^4.0.0)的写法比锁定精确版本更有利于减少升级摩擦。
还有 40 条时间轴事件
全部知识事实 (20)
根据语义化版本(SemVer)规范,0.y.z 处于初始开发期,任何版本都可能引入破坏性变更,公共 API 不应被视为稳定。
90%已验证补丁版本通常只包含向后兼容的问题修复,不会引入破坏性变更或新特性
90%已验证语义化版本(SemVer)版本号格式为主版本.次版本.补丁版本,补丁版本递增表示向后兼容的问题修复
90%已验证补丁级别更新通常不引入破坏性变更,一般可以直接升级而无需修改现有代码
90%已验证语义化版本控制(SemVer)将版本号定义为 MAJOR.MINOR.PATCH 三段式结构,PATCH 变更仅包含向后兼容的缺陷修复或依赖更新
90%已验证Patch 版本更新(1.0.104 → 1.0.105)意味着向后兼容的 bug 修复或依赖更新,不引入破坏性变更
90%已验证Vercel AI SDK 采用 monorepo(单一代码仓库)管理模式,核心包与各框架适配包共享同一套 CI/CD 流水线与版本管理工具
90%已验证补丁版本更新理论上不包含破坏性变更(Breaking Changes),升级风险较低
90%已验证补丁版本(Patch Release)通常包含向后兼容的问题修复,不会改变现有 API 的行为
90%已验证补丁版本通常不引入破坏性变更,主要用于修复 Bug、优化性能或同步底层依赖,遵循语义化版本控制(SemVer)规范
90%已验证Vercel AI SDK 采用 Monorepo 单一代码仓库管理模式,核心包 ai 与各框架适配包(如 @ai-sdk/vue、@ai-sdk/react、@ai-sdk/svelte)协同发布
90%已验证语义版本号(SemVer)格式为主版本号.次版本号.修订号:主版本号变更意味着不向后兼容的API变化,次版本号变更表示新增功能但保持向后兼容,修订号变更仅包含Bug修复
90%已验证语义化版本控制格式为MAJOR.MINOR.PATCH,MAJOR在不兼容API变更时递增,MINOR在添加向后兼容新功能时递增,PATCH在向后兼容缺陷修复时递增
90%已验证语义化版本规范(SemVer)的版本号格式为MAJOR.MINOR.PATCH,其中PATCH版本专门用于向后兼容的Bug修复
90%已验证根据语义化版本控制(SemVer)规范,Patch级别的更新意味着向后兼容的问题修复
90%已验证根据语义化版本控制规范,1.0.3作为补丁版本意味着更新不会引入破坏性变更,现有项目可安全升级
85%已验证语义化版本控制(SemVer)规范中,版本格式为 MAJOR.MINOR.PATCH,主版本号递增用于标识对现有公开 API 的不兼容修改
85%已验证从 3.0.44 升级到 3.0.45 是安全且低风险的操作,因为 Patch 版本意味着向后兼容的问题修复
80%已验证按照 SemVer 约定,补丁版本仅包含向后兼容的问题修复或内部依赖调整,不引入破坏性变更,现有用户可较放心直接升级
80%已验证在 npm 生态中,^3.0.25 这类范围声明会自动接受补丁与次版本升级,执行 npm update 时会自动获取 3.0.26
80%