Laravel 版本发布流程
发表于 作者: Paul Redmond
自 Laravel 5 版本发布周期 以来,Laravel 的版本发布流程已经发生了变化。我们收到很多关于 Laravel 在 Laracon US 2019 上宣布的新版本发布流程的问题、幽默的评论和困惑。由于某种原因,人们认为版本发布的速度加快了,但实际上,大多数方面都与我们在 Laravel 5 版本发布中习惯的类似。
在深入了解版本发布流程的细节之前,让我们先介绍一下自几个月前 Laravel 6 版本发布以来最重要的变化。
Laravel 6 和语义化版本控制
Laravel 版本发布流程最重要的变化是采用了 语义化版本控制 (Semver)。在 Laravel 6 之前,每六个月我们会发布一个所谓的重大版本。例如,Laravel 5.4 的发布之后六个月,发布了 Laravel 5.5。因此,Laravel 框架每年会两次更新第二个版本号。从 Laravel 5.4 到 Laravel 5.5 包含重大变更。
根据更广泛的社区的请求,Laravel 从 Laravel 6 的发布(2019 年 9 月)开始采用了语义化版本控制。Semver 意味着,每次框架添加新的向后兼容功能时,Laravel 都会更新第二个版本号 (MINOR)。
例如,发布了 Laravel 6.1.0,几周后又发布了 Laravel 6.2.0。从 Laravel 6.1 到 6.2 的变化与 Laravel 发布 5.5.1 和 5.5.2 时的情况大致相同。
如果您不熟悉 Semver,以下是 语义化版本控制主页 上关于其基本含义的说明:
- 当您进行不兼容的 API 变更时,更改 MAJOR 版本号,
- 当您以向后兼容的方式添加功能时,更改 MINOR 版本号,以及
- 当您进行向后兼容的错误修复时,更改 PATCH 版本号。
更新后的版本发布流程
在 Laravel 6 版本说明 中,提供了有关 Laravel 从 Laravel 6 开始采用的新版本发布流程的优秀信息。在很多方面,我们将继续看到我们习惯的每周发布,但如果添加了新功能,MINOR 版本号将发生变化。
虽然 Laravel 倾向于每周发布一次,但频率并不重要,只要您了解,即使在一周内,框架也可能从 6.5.0 变为 6.6.0 就行了。
我想进一步向社区指出,Laravel 团队在 Laravel 5.8 和 Laravel 6.0 之间的工作方式并没有发生太大变化。当然,版本控制方式等一些细微的变化是预料之中的,但接受拉取请求、合并代码和标记发布的过程并没有发生太大变化。
拟定的发布计划
Laravel v6 是 Laravel 的下一个长期支持 (LTS) 版本。您可以在 2021 年 9 月 3 日之前获得错误修复,在 2022 年 9 月 3 日之前获得安全更新。
版本 | 发布 | 错误修复截止日期 | 安全修复截止日期 |
---|---|---|---|
5.5 (LTS) | 2017 年 8 月 30 日 | 2019 年 8 月 30 日 | 2020 年 8 月 30 日 |
5.6 | 2018 年 2 月 7 日 | 2018 年 8 月 7 日 | 2019 年 2 月 7 日 |
5.7 | 2018 年 9 月 4 日 | 2019 年 3 月 4 日 | 2019 年 9 月 4 日 |
5.8 | 2019 年 2 月 26 日 | 2019 年 8 月 26 日 | 2020 年 2 月 26 日 |
6 (LTS) | 2019 年 9 月 3 日 | 2021 年 9 月 3 日 | 2022 年 9 月 3 日 |
此外,我们通常可以预计每六个月会发布一个新的主要 Laravel 版本。这意味着大约在 2020 年 2 月,我们可以预计发布 Laravel 7.0.0。
以下是 Laravel 版本发布历史的更新表格
Laravel 版本发布历史
版本 | 发布 | 错误修复截止日期 | 安全修复截止日期 |
---|---|---|---|
V1 | 2011 年 6 月 | – | – |
V2 | 2011 年 9 月 | – | – |
v3 | 2012 年 2 月 | – | – |
v4 | 2013 年 5 月 | – | – |
5.0 | 2015 年 2 月 4 日 | 2015 年 8 月 4 日 | 2016 年 2 月 4 日 |
5.1 (LTS) | 2015 年 6 月 9 日 | 2017 年 6 月 9 日 | 2018 年 6 月 9 日 |
5.2 | 2015 年 12 月 21 日 | 2016 年 6 月 21 日 | 2016 年 12 月 21 日 |
5.3 | 2016 年 8 月 23 日 | 2017 年 2 月 23 日 | 2017 年 8 月 23 日 |
5.4 | 2017 年 1 月 24 日 | 2017 年 7 月 24 日 | 2018 年 1 月 24 日 |
5.5 (LTS) | 2017 年 8 月 30 日 | 2019 年 8 月 30 日 | 2020 年 8 月 30 日 |
5.6 | 2018 年 2 月 7 日 | 2018 年 8 月 7 日 | 2019 年 2 月 7 日 |
5.7 | 2018 年 9 月 4 日 | 2019 年 2 月 4 日 | 2019 年 9 月 4 日 |
5.8 | 2019 年 2 月 26 日 | 2019 年 8 月 26 日 | 2020 年 2 月 26 日 |
6.0 (LTS) | 2019 年 9 月 3 日 | 2021 年 9 月 3 日 | 2022 年 9 月 3 日 |
7.0 | 2020 年 3 月 3 日 | 2020 年 9 月 3 日 | 2021 年 3 月 3 日 |
8.0 | 2020 年 9 月 8 日 | 2021 年 3 月 8 日 | 2021 年 9 月 8 日 |
* 我们试图展示版本发布机制的示例,日期未经确认。