维护
编辑本页警告:您正在浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 4.4,现已不再维护。
读本页的更新版本用于Sy欧宝娱乐app下载地址mfony 6.2(当前稳定版本)。
维护
在小版本的生命周期内,每个月都会发布新版本(补丁版本)。本文档描述了可接受更改的边界。
错误修复在以下条件下接受:
- 该更改不会破坏有效的单元测试;
- 新的单元测试涵盖了bug修复;
- 当前的bug行为并没有作为“特性”被广泛使用。
请注意
当文档(或欧宝体育电话PHPDoc)与代码不同步时,应该始终认为代码行为是正确的。
为了避免向后兼容性中断,我们倾向于对补丁版本所接受的更改非常严格。
除了bug修复外,在一个补丁版本中,可能会根据具体情况接受其他一些小的更改:
- 更新的PHP版本:如果不破坏单元测试套件,添加对新版本PHP的支持的修复是可以接受的,但我们从不添加对新PHP特性的支持;
- 流行操作系统的更新版本:在不破坏单元测试套件的情况下,添加对流行操作系统(Linux、MacOS和Windows)新版本支持的修复是可以接受的,但我们从不添加对较新的PHP特性或较新的操作系统版本的支持;
- 翻译:翻译更新和添加总是在最古老的维护分支中合并;
- 外部数据: Symfony中包含的外部数据可以更新(如ICU);欧宝娱乐app下载地址
- 针对Composer依赖项的版本更新:修改一个依赖的最小版本是可能的,但升级到一个主版本或增加PHP的最小版本是不可能的;
- 测试:可以添加增加代码覆盖率的测试。
以下更改为一般不接受在补丁版本中,除非是根据具体情况(主要是与修复安全问题有关):
- 性能改进:只有在局部(位于一个类中)且仅针对算法问题的情况下才能接受性能改进(任何此类补丁必须附带数字,以显示对实际代码的显著改进);
- 编码标准和重构:编码标准修复或代码重构几乎不被接受,除非它们与现有的代码库保持一致,前提是它们不是太有侵入性,并且将它们合并到更高的分支不会导致复杂的分支合并。
- 添加新的类或非私有方法:在修复bug时,永远不要引入新的类或公共/受保护的方法(或全局函数)。
- 添加配置选项:不允许引入新的配置选项。
- 添加新的弃用:当版本达到稳定后,不能再添加新的弃用。
上面没有明确列出的内容应该在下一个小版本或大版本中完成。例如,以下更改在补丁版本中永远不会被接受:
- 新功能;
- 安全性加强;
- 向后兼容性中断:请注意,如果无法通过其他方式修复安全问题,则可以在修复安全问题时进行向后兼容性破坏;
- 支持外部平台:在补丁版本中无法添加对新平台(如谷歌应用引擎)的支持;
- 异常消息:不可更改异常消息,因为一些自动化系统可能依赖于它们(即使不建议这样做);
- 添加新的Composer依赖项;
- 支持新版本的Composer依赖项:考虑对现有依赖项的更新版本的支持是不可接受的。
- 网页设计:不允许更改内置页面的网页设计,如异常,工具栏或分析器。
请注意
此策略旨在启用持续升级路径,允许用户以最安全的方式继续使用最新的Symfony版本。欧宝娱乐app下载地址应该能够几乎独立地迁移PHP版本、OS或Symfony版本。欧宝娱乐app下载地址这就是为什么支持最新的PHP版本或操作系统特性被认为是错误修复的原因。
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。