An open API service indexing awesome lists of open source software.

https://github.com/sawyerbutton/semantic-versioning-doc

Semantic Versioning description in CN
https://github.com/sawyerbutton/semantic-versioning-doc

Last synced: 5 months ago
JSON representation

Semantic Versioning description in CN

Awesome Lists containing this project

README

          

# Semantic Versioning Doc 语义化版本概念说明

语义化版本概念用于为版本号提供合理意义的规约

## 语义化版本的概念

如果在海量的让人痛苦的(懂得都懂) Node.js 包中存在一个特别棒实践,那就是语义化版本概念的真实落地 - 使用语义化版本规约进行版本号的控制

语义化版本概念其实很简单,每个版本号都由三个数字组成: X,Y,Z

- X 代表主版本的编号
- Y 代表小版本的编号
- Z 代表补丁的编号

当你进行一次发布的时候,你不应该随意地进行版本编号,而是遵从语义化版本的规约:

- 当你提供不兼容的 API 变化时,提升主版本编号
- 当你提供向后兼容的 API 变化时,提升小版本编号
- 当你提供向后兼容的 BUG 修复补丁时,提升补丁编号

该约定适用于所有编程语言,同样也适用于几乎所有的项目开发发布流程

## 语义化版本在项目中的应用

在我们的项目开发流程中,我们可能并不以 向后兼容/不兼容的 API 为基准发布版本,而是以跟随着项目的需求周期进行版本的发布

我们需要适合我们自己的 语义化版本实践:

- X 代表一个新的需求周期的内容发布,当你需要发布一个较大的整体需求实现时,**提升主版本编号**
- Y 代表在某一需求周期内的新增小需求发布,当你需要在某一个整体需求周期内新增额外的小需求时,**提升小版本编号**
- Z 代表在某一需求周期内的 BUG 修复版本发布,当你需要对某一个整体需求周期内的某个小版本进行 BUG 修复并发布修复后版本时,**提升补丁编号**

## 总结

合理地使用语义化版本概念可以帮助我们更准确地进行项目的维护和控制,通过清晰的语义化版本号,版本回溯,BUG版本定位等问题都可以得到相应的解决