跳到内容

发布流程

编辑此页

本文档解释了 Symfony 项目在开发、发布和维护不同版本时所遵循的流程。

Symfony 版本发布遵循语义化版本控制策略,并通过基于时间的模型发布

  • 新的 Symfony 补丁版本(例如 5.4.12、6.1.9)大约每月发布一次。它仅包含错误修复,因此您可以安全地升级您的应用程序;
  • 新的 Symfony 次要版本(例如 5.4、6.0、6.1)每六个月发布一次:五月和十一月各一次。它包含错误修复和新功能,可能包含新的弃用,但不包含任何破坏性更改,因此您可以安全地升级您的应用程序;
  • 新的 Symfony 主要版本(例如 5.0、6.0、7.0)每两年在奇数年份的 11 月发布(例如 2019、2021、2023)。它可能包含破坏性更改,因此您可能需要在升级之前对应用程序进行一些更改。

提示

订阅 Symfony 版本发布通知,以便在新 Symfony 版本发布或 Symfony 版本达到生命周期结束时收到电子邮件。

开发

注意

Symfony 项目是一个开源社区驱动的开发框架。没有预先编写或定义的路线图。每个功能请求可能会或可能不会在未来的版本中开发,这取决于社区。如果有足够的兴趣,Symfony 核心团队成员可以帮助推动事情向前发展。

任何主要或次要版本的完整开发周期持续六个月,分为两个阶段

  • 开发:四个月用于添加新功能和增强现有功能;
  • 稳定化:两个月用于修复错误、准备发布以及等待整个 Symfony 生态系统(第三方库、扩展包和使用 Symfony 的项目)赶上。

在开发阶段,任何新功能如果不能及时完成或不够稳定以包含在当前最终版本中,都可能被撤销。

提示

查看 Symfony 版本发布页面,了解有关任何特定版本的更多信息。

维护

从 Symfony 3.x 分支开始,每个分支的次要版本数量限制为五个(X.0、X.1、X.2、X.3 和 X.4)。分支的最后一个次要版本(例如 5.4、6.4)被认为是长期支持版本,而其他版本被认为是标准版本

版本类型 错误修复期限... 安全问题修复期限...
标准 8 个月 8 个月
长期支持 (LTS) 3 年 4 年

注意

在 Symfony 版本的活跃维护期结束后,您可以从 Symfony 项目的赞助商 SensioLabs 获得专业的 Symfony 支持

向后兼容性

我们的向后兼容性承诺非常严格,允许开发人员放心地从一个 Symfony 次要版本升级到下一个。

当一个功能实现无法在不破坏向后兼容性的情况下被更好的实现替换时,Symfony 会弃用旧的实现并添加一个新的首选实现。阅读约定文档以了解有关 Symfony 中如何处理弃用的更多信息。

这种弃用策略还需要针对主要版本(6.0、7.0 等)的自定义开发流程。在这些情况下,Symfony 同时开发两个版本:新的主要版本(例如 6.0)和上一个分支的最新版本(例如 5.4)。

这两个版本都具有相同的新功能,但它们在已弃用的功能上有所不同。最旧的版本(本例中为 5.4)包含所有已弃用的功能,而新版本(本例中为 6.0)则移除了所有这些功能。

这允许您将项目升级到最新的次要版本(例如 5.4),查看所有弃用消息并修复它们。一旦您修复了所有这些弃用,您就可以毫不费力地升级到新的主要版本(例如 6.0),因为它包含相同的功能(唯一的区别是已弃用的功能,您的项目不再使用这些功能)。

PHP 兼容性

每个 Symfony 主要版本的最低 PHP 版本由核心团队协商一致决定,并记录为运行 Symfony 应用程序的技术要求的一部分。

在每个 Symfony 版本的支持期内,所有已发布的 PHP 版本,包括新的主要版本,都将受到支持。因此,对于正在维护的 Symfony 版本,最大支持的 PHP 版本是最新发布的公开版本。

对于不再受支持的 Symfony 版本,EOL 时的最新 PHP 版本是最后支持的 PHP 版本。较新的 PHP 版本可能可以工作,也可能无法工作。

注意

作为规则的例外,当这有助于解决重要问题时,可以为 Symfony 的次要版本提升最低 PHP 次要版本。

理由

采用此发布流程是为了提供更高的可预测性透明度。讨论是基于以下目标进行的

  • 缩短发布周期(使开发人员更快地从新功能中受益);
  • 让使用该框架的开发人员和使用 Symfony 的开源项目有更高的可见性;
  • 改善 Symfony 核心贡献者的体验:每个人都知道某个功能何时可能在 Symfony 中可用;
  • 协调 Symfony 时间线与流行的 PHP 项目以及使用 Symfony 的项目;
  • 给 Symfony 生态系统时间来赶上新版本(扩展包作者、文档编写者、翻译人员等);
  • 为公司提供严格且可预测的时间表,以便他们可以依靠该时间表来规划自己的项目开发。

选择六个月的周期是因为一年可以发布两个版本。它还允许有充足的时间来开发新功能,并允许将未准备好的功能推迟到下一个版本,而无需等待太久才能进入下一个周期。

采用双重维护模式是为了让每个 Symfony 用户都满意。想要使用最新和最棒的快速行动者使用标准版本:每六个月发布一个新版本,并且有 2 个月的升级期。希望获得更高稳定性的公司使用 LTS 版本:每两年发布一个新版本,并且有一年的升级期。

本作品(包括代码示例)根据 Creative Commons BY-SA 3.0 许可协议获得许可。
目录
    版本