移除NuGet包依赖引发编译失败:是否为破坏性变更?版本如何升级?
问题解答:移除NuGet间接依赖是否属于破坏性变更?
这绝对属于破坏性变更。你的场景里,原本依赖PackageA的应用不需要手动引用TransitiveDep就能正常构建,现在移除PackageA对TransitiveDep的引用后,直接导致现有应用编译失败,必须手动添加TransitiveDep的引用才能恢复正常——这种对现有使用者的正常使用造成强制中断、要求使用者修改依赖配置才能适配的变更,完全符合破坏性变更的定义。
版本升级方面,你必须升级PackageA的主版本号。按照语义化版本(SemVer)的规范,主版本号用于标识不兼容的变更,哪怕PackageA没有公开暴露TransitiveDep的API,但这次变更破坏了下游依赖链的兼容性,导致现有使用者无法无缝升级,属于不兼容的变更范畴,因此必须提升主版本号。
内容的提问来源于stack exchange,提问作者hIpPy
相关产品推荐
相关产品推荐

