假设我正在开发一个(javascript)库,它托管在公共回购(例如,github)上。就版本号的分配和递增而言,我的目标是遵循语义版本化的指导方针。
现在,我的项目中有许多文件组成了实际的库,还有许多文件“支持它”,后者是docs、测试套件等等。我的观点是,版本号应该只适用于实际库,而不是整个项目,因为库本身就是定义公共API的“单元”。
但是,我对这种方法并不满意,例如,测试套件中的修复构成了我的项目中的“改进”,它不会反映在版本号(或者包含对它的引用的文档中)中。在更实际的层面上,各种工具,如包管理器,可能(可以理解)不配合此策略。例如,当试图发布没有反映在版本号中的更改时,npm publish失败了,因为"Bump the ' version‘字段设置了-force标志,或npm取消发布“。
我做错了吗?
发布于 2012-11-30 04:04:14
到目前为止,我的观点是版本号应该只适用于实际库,而不是整个项目,因为库本身就是定义公共API的“单元”。
但对世界来说,你的最终产品更有意义:
如果你改变了这个三位一体的任何东西,你会得到新版本的产品,它不能(逻辑上)共享旧产品的ID。
如果您喜欢严格遵守SV-规则,并且只使用3-八进制,则可以
如果只引入了向后兼容的bug修复程序,则必须增加补丁版本Z(x.y.Z-x> 0)
docs\x测试更改可能被认为是错误修复,并且是向后兼容的。因此,从1.1.0版本开始,docs变更集可能会将其增加到1.1.9999,而不是1.2.0。
构建版本可以通过紧接补丁版本或预发布版本之后附加加号和一系列点分隔标识符来表示。
从1.1.0开始,版本将增加到1.1.0+9999。
https://softwareengineering.stackexchange.com/questions/177783
复制相似问题