版本管理:语义化版本控制规范(269)
📅 2026/7/27 7:29:54
👁️ 阅读次数
📝 编程学习
在 OHPM(OpenHarmony Package Manager)生态中,三方库的版本号严格遵循语义化版本控制(SemVer 2.0.0)规范。这套规范旨在通过版本号直观地传达代码的变更类型与兼容性。以下是详细的版本管理规范:
1. 版本号标准格式
标准的版本号格式为主版本号.次版本号.修订号(即MAJOR.MINOR.PATCH),且每一位均禁止在前面添加前导零(如01.0.1或1.0.01均为无效格式)。
- 主版本号(MAJOR):当开发者进行了不能向下兼容的代码修改(如删除了某个组件、修改了核心接口)时,必须递增主版本号,同时将次版本号和修订号归零。
- 次版本号(MINOR):当开发者新增了功能且保持向后兼容时,必须递增次版本号,同时将修订号归零。
- 修订号(PATCH):当开发者仅进行了程序 Bug 或漏洞修复,且保持向后兼容时,须递增修订号。
2. 预发布与构建信息(可选扩展)
除了标准版本号,还支持附加预发布标识和构建信息:
- 先行版本号(PRERELEASE):用于标识尚未稳定的预发布版本(如测试版、候选版)。格式为在标准版本号后加连字符(如
1.0.0-alpha、1.0.0-beta.10)。当标准版本号相同时,先行版本的优先级小于标准版本(例如1.0.0-snapshot < 1.0.0)。 - 构建信息(BUILD):用于记录编译或构建过程中的附加信息(如时间戳)。格式为在版本号后加加号(如
1.0.0+20250415)。构建信息不影响版本比较时的优先级。
3. 版本比较与解析规则
- 逐级比较:比较时优先比较主版本号,其次次版本号,最后修订号(例如
1.1.1 < 1.1.2 < 1.2.0 < 2.0.0)。 - 缺省字段处理:当版本号存在缺省字段时,缺失字段视为
0(例如1.2等价于1.2.0,1等价于1.0.0)。 - 开发初始阶段:主版本号为零(
0.y.z)的软件处于开发初始阶段,API 不稳定,视为非稳定版本。
4. 依赖范围解析策略
在配置依赖范围(如>=1.0.0)时,包管理器会按以下逻辑拉取版本:
- 若仓库同时存在先行版本和标准版本,优先安装符合范围的最新标准版本。
- 若仓库中不存在符合范围的标准版本,则会退而安装符合范围的最新先行版本。
编程学习
技术分享
实战经验