Laravel版本用SemVer规范吗

wen PHP项目 24

本文目录导读:

Laravel版本用SemVer规范吗

  1. 具体含义和 Laravel 的对应关系
  2. 一个重要的例外情况(Laravel 的政策)
  3. 如何查看 Laravel 版本

是的,Laravel 框架的版本号严格遵循 SemVer(语义化版本控制) 规范。

SemVer 的格式为 主版本号.次版本号.修订号(MAJOR.MINOR.PATCH),Laravel 在官方文档和版本发布中明确遵守这一标准。

具体含义和 Laravel 的对应关系

你需要了解 Laravel 如何应用 SemVer 规则,特别是不兼容的破坏性变更的定义:

  1. 主版本号(MAJOR)

    • 含义:当做了不兼容的 API 或底层架构修改时,递增主版本号。
    • Laravel 示例:Laravel 5 → Laravel 6,Laravel 9 → Laravel 10,Laravel 10 → Laravel 11。
    • 影响:升级主版本通常需要修改代码,因为某些函数被移除、参数签名发生重大变化或底层架构(如 PHP 最低版本要求)发生变化。
  2. 次版本号(MINOR)

    • 含义:当新增了向后兼容的功能时,递增次版本号。
    • Laravel 示例:Laravel 10.0 → Laravel 10.1,Laravel 11.0 → Laravel 11.5。
    • 注意:这是官方文档很重要的一点,在次版本号更新中,可以包含重大破坏性变更,前提是该变更对最终开发者不可见(内部代码重构、数据库查询底层实现优化),或者官方明确声明该变更是为了修复一个严重 bug 而不得不进行的非公开破坏,次版本升级应该非常安全,只需更新依赖即可。
  3. 修订号(PATCH)

    • 含义:当进行向后兼容的 Bug 修复时,递增修订号。
    • Laravel 示例:Laravel 11.5.0 → Laravel 11.5.1,Laravel 11.5.2。
    • 影响:只修复 bug,不添加新功能,完全安全升级。

一个重要的例外情况(Laravel 的政策)

虽然遵循 SemVer,但 Laravel 在主版本号发布之前,允许在次版本号x.0x.9)发布时引入一些“对开发者可见”的、但被认为是预发布或实验性的破坏性变更。

官方文档明确说明:在次版本号期间引入的所有破坏性变更,都会在下一次主版本发布之前被明确标记、文档化,并提供升级指导(通常以《升级指南》的形式)。

如何查看 Laravel 版本

你可以在 Composer 依赖管理文件 composer.json 中看到版本约束,这体现了 SemVer 的应用:

{
    "require": {
        "php": "^8.1",
        "laravel/framework": "^10.0"
    }
}
  • ^10.0 表示允许自动安装 0.0 及以上、但小于 0.0 的所有版本(即只能升级次版本和修订版,不会自动升级到主版本 11)。
  • ~10.0 表示只允许安装 0.x 范围内的修订版(严格限制次版本和主版本不变)。
版本部分 含义 是否向后兼容 是否包含破坏性变更
主版本 (e.g., 10→11) 主要架构或 API 不兼容
次版本 (e.g., 10.0→10.1) 新增功能或优化 (大多数情况下) (或仅限内部/实验性)
修订版 (e.g., 10.1.0→10.1.1) Bug 修复

是的,Laravel 严格遵守 SemVer,但开发者需要注意,主版本升级是最大的分水岭,而次版本和修订版应尽可能平滑。

抱歉,评论功能暂时关闭!