基于语义版本控制,删除实验性API元素的版本号选择疑问
实验性API元素删除时的语义版本号确定方案
基于语义版本控制(Semantic Versioning)规则,结合你已通过自定义扩展(REST API)、自定义注解(Java API)标记实验性元素,且明确告知用户「实验性元素不稳定、不保证向后兼容、禁止生产依赖」的前提,针对你的场景分析如下:
场景1:向5.1.0版本添加实验性元素
添加实验性元素属于新增非稳定功能,不会影响现有稳定API的兼容性,符合语义版本中「次版本号(MINOR)用于新增功能」的规则,因此应将版本升级为5.2.0。
场景2:删除该实验性元素
由于实验性元素的使用约定明确禁止用户依赖,删除它不属于对稳定API的破坏性变更——依赖实验性元素的代码本身违反使用规范,不在语义版本需要兼容的范围内。因此不需要升级主版本号(6.0.0仅用于稳定API的不兼容变更),也无需使用次版本号(次版本号对应新增功能),应升级补丁号(PATCH),即版本设为5.2.1。
补充说明
如果你的团队内部对实验性元素的版本管理有特殊约定(比如要求实验性变更统一触发次版本更新),也可以遵循内部规则,但核心是必须保持版本规则的一致性,并明确同步给所有API使用者。
内容的提问来源于stack exchange,提问作者nik0x1
相关产品推荐
相关产品推荐

