Open source 正在寻找软件版本的建议版本控制样式

Open source 正在寻找软件版本的建议版本控制样式,open-source,versioning,release,forum,Open Source,Versioning,Release,Forum,我开发了一个名为nearforums()的开源论坛引擎,我想知道如何命名发布 到目前为止,这些版本的名称是release1、release2等。但在接下来的几天里,我将发布一个新版本,我不知道遵循releaseN命名是否是一个好主意 我应该遵循mayor.minor版本控制风格吗?如何选择第一个“市长。未成年人”和当前的?如何处理bug修复+发布 每次开发一些“大”功能时,我都会继续发布 谢谢你的建议 询问5位开发人员,您可能会得到6种不同的版本编号建议 无论您选择什么版本号系统,都应该确保它遵

我开发了一个名为nearforums()的开源论坛引擎,我想知道如何命名发布

到目前为止,这些版本的名称是release1、release2等。但在接下来的几天里,我将发布一个新版本,我不知道遵循releaseN命名是否是一个好主意

我应该遵循mayor.minor版本控制风格吗?如何选择第一个“市长。未成年人”和当前的?如何处理bug修复+发布

每次开发一些“大”功能时,我都会继续发布


谢谢你的建议

询问5位开发人员,您可能会得到6种不同的版本编号建议

无论您选择什么版本号系统,都应该确保它遵循某些准则。大多数软件包管理系统都希望能够确定哪个是最新版本,因此您应该确保您的版本号系统始终增加,第一个版本的优先级最高,第二个版本的优先级第二高,等等。例如,如果您现在使用的是3版,如果你决定使用X.Y系统,你不应该倒退到1.4版,至少应该从3.1或4.0版开始。大多数软件包管理系统都有一个新纪元的概念来修复版本号倒退的情况,但您不应该依赖它

一般来说,您的版本号应该由虚线数字组成,每个虚线数字按数字顺序递增(因此,1、2、3、…、9、10、11……,而不是按字母顺序排序的1、10、11、2、3……)

有些人喜欢使用major.minor.patch系统,在该系统中,向后不兼容的更改或主要新功能的主要数量递增,向后兼容的更改或次要新功能的次要数量递增,而补丁更改仅适用于向后兼容的错误修复,这些错误修复不引入任何新功能

其他人喜欢使用像Ubuntu这样的系统,带有year.month或year.release(可能还有第三个数字用于补丁或错误修复,或者year.month.day)。这有助于避免决定什么是“主要”特征,并且可以给人们一个比任意的“7”或“23”更令人难忘的数字。这样做的缺点是,当您进行向后不兼容的更改时,不会让您的用户知道,尽管这取决于您所做的操作,可能不太相关(如果您总是保持向后兼容性,或者如果您正在为Linux发行版之类的东西编号,它包含很多部分,其中一些部分可能向后兼容,而另一些部分可能不向后兼容,那么保证版本之间的向后兼容性就没有意义了)

如果您觉得可以坚持向后兼容的强烈理念,我建议按照中给出的指导原则使用major.minor.patch系统。在这些指导原则中,对于向后不兼容的更改,您可以增加主版本。对于向后兼容的更改,您可以增加次版本,但这些更改仍可能添加新功能nality(因此有人可能依赖于2.3.0以上的版本,因为这是添加了新功能的版本,但低于3.0.0,因为这可能有不兼容的更改)。您只为修复错误而增加该修补程序级别。如果您现在是3版,我将从4.0.0开始下一个版本,然后从现在开始遵循此模型

如果您不想做一些工作来确保兼容性并确定哪些是向后兼容的,哪些不是向后兼容的,那么只需使用year.month、year.month.version或year.version,其中该月或该年内的每个版本的版本增量为1(取决于您的发布频率)。因此,您的下一个版本将类似于2010.1、2010.8.1或2010.8,具体取决于具体形式(或者您可以选择10.1、10.8.1等)


(嗯,我只是一个开发人员,我想我现在已经给了你至少6个选择。哦,好吧,希望其中一个适合你)

问5个开发人员,你可能会得到6个不同的版本编号建议

无论您选择何种版本号系统,您都应该确保它遵循某些指导原则。大多数软件包管理系统都希望能够确定哪个是最新版本,因此您应该确保您的版本号系统始终增加,第一个数字具有最高优先级,第二个数字具有第二高优先级,等等例如,如果您现在使用的是3版,那么您不应该倒退到1.4版如果您决定使用X.Y系统,您至少应该从3.1或4.0版开始。大多数软件包管理系统都有一个新纪元的概念来修复版本号倒退的情况,但您不应该依赖它

一般来说,您的版本号应该由虚线数字组成,每个虚线数字按数字顺序递增(因此,1、2、3、…、9、10、11……,而不是按字母顺序排序的1、10、11、2、3……)

有些人喜欢使用major.minor.patch系统,在该系统中,向后不兼容的更改或主要新功能的主要数量递增,向后兼容的更改或次要新功能的次要数量递增,而补丁更改仅适用于向后兼容的错误修复,这些错误修复不引入任何新功能

其他人喜欢使用像Ubuntu这样的系统,带有year.month或year.release(可能还有第三个数字,用于补丁或错误修复,或year.month.day)。这可以帮助避免决定什么是“主要”功能,并且可以给人们一个比任意的“7”或“23”更令人难忘的数字。这样做的缺点是,当您进行向后不兼容的更改时,不会让用户知道,尽管这取决于您正在执行的操作,但可能不太相关(如果您总是保持向后兼容,或者如果您正在为Linux发行版之类的东西编号,它包含很多部分,其中一些部分可能是向后兼容的,等等