Semver 在应用库运用.
Semver 在应用库上的定义很明确成熟
应用库上举例:
- 修复小BUG . Patch 修定版更新.
- 对象增加方法. Minor 次版本号更新.
- 删除方法. Major 主版本号更新.
这种被广泛运用于依赖管理工具(npm/composer/maven/...).
Semver 在项目中运用
比如, 就拿 gitlab 来说, 看了 changelog , 感觉主次版本号的变更毫无规律可言. 似乎与项目代码的变更无关.
如: 删除代码方法, 并未改变大版本号. (应用库的版本定义方式不适用).
项目又会把API独立一个版本维护:
这个可以理解.
比如原本/api/v1/user/1
返回 {"name":"Tom","age":18}
新增字段,删除字段,改变结构, 都会变更主版本号/api/v2
, /api/v3
疑问
在一个项目中 Semver 该怎么适用的
- Semver 在应用库中参考对象是代码的变更, 在项目中变更的参考对象也会是代码吗?
- 项目的API是否需要单独作为版本定义?
-
若参考对象是代码:
- 在UI的代码中, 如: HTML/CSS 变更, 没有方法定义, 又如何定义版本?
- 项目代码配置的变更, 影响比较大. 比如: 假如思否的源码有配置"私信"功能的开关, 配置变更, 版本需要重新定义吗?
- (这个也包含作为应用库的疑问) 依赖库的版本升级, 兼容代码执行, 修订版本号变更吗?
比如: npmpackage.json
中{"jquery": "^2"}
升级{"jquery":"^3"}
.