语义化版本
语义化版本控制(Semantic Versioning,简称 SemVer)是一种用于软件发布的标准版本命名约定。它旨在给每个软件版本赋予一个清晰、有意义的标识符,以便于开发者、用户和自动化工具能够明确地理解不同版本之间的差异和兼容性。
语义化版本控制遵循以下格式:
主版本号.次版本号.修订号或者,使用可选的构建元数据或预发布版本号进行扩展:
主版本号.次版本号.修订号-预发布版本号+构建元数据各个部分的含义如下:
主版本号(Major):当你做了不兼容的 API 修改时,你需要增加主版本号。这通常意味着当前的软件版本已经无法与之前的版本无缝兼容,可能需要用户进行代码修改才能继续使用新版本。
次版本号(Minor):当你以向下兼容的方式添加新功能时,你应该增加次版本号。这表示新版本中添加了新的功能或改进,但不会破坏与旧版本的兼容性。
修订号(Patch):当你做了向下兼容的问题修正时,应该增加修订号。这通常用于修复一些 bug,提高软件的稳定性和安全性,而不会添加新功能或修改现有 API 的兼容性。
预发布版本号(Pre-release):包含一系列由点分隔的标识符(如 alpha、beta、rc 等),后跟一个可选的加号和数字标识符,表示当前版本是一个不稳定的预发布版本。
构建元数据(Build Metadata):包含一系列由点分隔的标识符,用于提供关于构建版本的额外信息,如构建日期、构建编号等。构建元数据不会影响软件版本的兼容性或排序。
例如:
1.0.0:稳定的发布版本。1.1.0:在版本 1.0.0 的基础上添加了新功能,但保持兼容性。1.0.1:修复了版本 1.0.0 中的一些 bug,但没有添加新功能。1.0.0-alpha.1:版本 1.0.0 的一个预发布版本,alpha 阶段的第一版。1.0.0+20230101:版本 1.0.0 的一个稳定版本,构建日期为 2023 年 1 月 1 日。
语义化版本控制通过明确的版本号规范,促进了软件项目的可维护性、可预测性和兼容性。