如果我引入非向前兼容的更改,我是否应该增加主要版本
Should I increment major version if I introduce a non-forward compatible change
我有一个即将进行的更改,很可能会使较新的文档无法加载到旧版本的程序中,但这些更改仍将允许加载旧文档。这是大版本的增加还是小版本的增加
Semver只讲向后兼容,而不是相反
听起来您正在对文档格式(接口)进行重大更改,这将破坏程序的旧版本,因此您必须升级主要版本。但是您可能实际上并没有独立于处理它们的程序对文档格式进行版本控制,对吗?如果不是,则说明您存在设计缺陷。
旧程序版本在尝试读取这种新格式时会崩溃,还是优雅地失败?如果您可以控制文档类型 |版本说明符(文件扩展名或内部签名),那么您可以安排较新的程序为包含新格式的文档发出不同的签名。您的新代码是否会提供以旧格式发送文档的选项?
普遍接受的最佳做法是针对这些类型的更改提升主要版本,因为新代码的数据交换格式会破坏可能预期处理相同类型文档的旧代码。前锋 |向后兼容的观点实际上只是对同一类事物的不同观点,具有不同的细微差别。事实上,你问这个问题的方式表明你不了解向前兼容的含义或真正开发的细微差别 forward compatible systems.
我有一个即将进行的更改,很可能会使较新的文档无法加载到旧版本的程序中,但这些更改仍将允许加载旧文档。这是大版本的增加还是小版本的增加
Semver只讲向后兼容,而不是相反
听起来您正在对文档格式(接口)进行重大更改,这将破坏程序的旧版本,因此您必须升级主要版本。但是您可能实际上并没有独立于处理它们的程序对文档格式进行版本控制,对吗?如果不是,则说明您存在设计缺陷。
旧程序版本在尝试读取这种新格式时会崩溃,还是优雅地失败?如果您可以控制文档类型 |版本说明符(文件扩展名或内部签名),那么您可以安排较新的程序为包含新格式的文档发出不同的签名。您的新代码是否会提供以旧格式发送文档的选项?
普遍接受的最佳做法是针对这些类型的更改提升主要版本,因为新代码的数据交换格式会破坏可能预期处理相同类型文档的旧代码。前锋 |向后兼容的观点实际上只是对同一类事物的不同观点,具有不同的细微差别。事实上,你问这个问题的方式表明你不了解向前兼容的含义或真正开发的细微差别 forward compatible systems.