2
修复重要错误时的语义版本控制
我目前管理的图书馆有很多公共用途,并且我对语义版本化有疑问。我想重构该库的一个相当重要的部分,该部分执行不正确-始终执行不正确。但是,这样做将意味着更改公共API,这是一个重大决定。 我要进行的更改围绕如何使用迭代器展开。当前,用户必须执行以下操作: while ($element = $iterator->next()) { // ... } 至少在PHP的本机Iterator接口中,这是不正确的。我要替换为: while ($iterator->valid()) { $element = $iterator->current(); // ... $iterator->next(); } 类似于: foreach ($iterator as $element) { // ... } 如果您查看Tom的语义版本控制指南,他清楚地指出,对公共API的任何更改(即那些不向后兼容的更改)都应证明是主要版本的合理性。因此,该库将从1.7.3跳到2.0.0,对我来说,这是一个太远的步骤。我们只是在谈论一个已修复的功能。 我确实有计划最终发布2.0.0,但是我认为这是您完全重写该库并实现了许多公共API更改的时候。引入此重构是否需要发行主要版本?我真的不知道它是如何工作的-我更愿意将其发布为1.8.0或1.7.4。有人建议吗?