Semantic Versioning

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

Github星跟蹤圖

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

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

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

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

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

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

概覽

名稱與所有者ninenines/cowboy
主編程語言Erlang
編程語言 (語言數: 3)
平台
許可證ISC License
發布數53
最新版本名稱2.12.0 (發布於 2024-03-14 15:59:46)
第一版名稱0.2.0 (發布於 )
創建於2011-03-09 19:55:52
推送於2024-04-19 13:37:49
最后一次提交2024-04-05 22:08:59
星數7.2k
關注者數295
派生數1.2k
提交數2.1k
已啟用問題?
問題數1130
打開的問題數53
拉請求數178
打開的拉請求數14
關閉的拉請求數307
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?
去到頂部