Semantic Versioning

语义版本规范。(Semantic Versioning Specification.)

Github stars Tracking Chart

语义化版本控制的规范是由 Gravatars 创办者兼 GitHub 共同创办者 Tom Preston-Werner 所建立。
\r\n

在软件管理的领域里存在着被称作“依赖地狱”的死亡之谷,系统规模越大,加入的套件越多,你就越有可能在未来的某一天发现自己已深陷绝望之中。\r\n

在依赖高的系统中发布新版本套件可能很快会成为恶梦。如果依赖关系过高,可能面临版本控制被锁死的风险(必须对每一个相依套件改版才能完成某次升级)。而如果依赖关系过于松散,又将无法避免版本的混乱(假设兼容于未来的多个版本已超出了合理数量)。当你专案的进展因为版本相依被锁死或版本混乱变得不够简便和可靠,就意味着你正处于依赖地狱之中。
\r\n

作为这个问题的解决方案之一,作者提议用一组简单的规则及条件来约束版本号的配置和增长。这些规则是根据(但不局限于)已经被各种封闭、开放源码软件所广泛使用的惯例所设计。为了让这套理论运作,你必须先有定义好的公共 API 。这可以透过文件定义或代码强制要求来实现。无论如何,这套 API 的清楚明了是十分重要的。一旦你定义了公共 API,你就可以透过修改相应的版本号来向大家说明你的修改。考虑使用这样的版本号格式:XYZ (主版本号.次版本号.修订号)修复问题但不影响API 时,递增修订号;API 保持向下兼容的新增及修改时,递增次版本号;进行不向下兼容的修改时,递增主版本号。
\r\n

作者称这套系统为“语义化的版本控制”,在这套约定下,版本号及其更新方式包含了相邻版本间的底层代码和修改内容的信息。
\r\n

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
  • 主版本号:当你做了不兼容的 API 修改,
  • 次版本号:当你做了向下兼容的功能性新增,
  • 修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

Overview

Name With Ownerninenines/cowboy
Primary LanguageErlang
Program language (Language Count: 3)
Platform
License:ISC License
Release Count53
Last Release Name2.12.0 (Posted on 2024-03-14 15:59:46)
First Release Name0.2.0 (Posted on )
Created At2011-03-09 19:55:52
Pushed At2024-04-19 13:37:49
Last Commit At2024-04-05 22:08:59
Stargazers Count7.2k
Watchers Count295
Fork Count1.2k
Commits Count2.1k
Has Issues Enabled
Issues Count1130
Issue Open Count53
Pull Requests Count178
Pull Requests Open Count14
Pull Requests Close Count307
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top