CakePHP 对所有版本都遵循语义版本控制。这遵循 **major.minor.patch** 的版本控制约定。
开发团队努力保证每个版本都遵循以下限制和保证。
主要版本通常不向后兼容。尽管 CakePHP 试图在主要版本中不更改许多大型功能,但仍存在 API 更改。
主要版本中的更改可能包括几乎所有内容,但始终用于移除弃用功能和更新接口。
所有不向后兼容的行为更改都将在主要版本中进行。
每个主要版本通常都附带升级指南,以及使用 rector 进行许多自动代码升级。
次要版本通常向后兼容之前的次要版本和补丁版本。
功能可能被弃用,但不会在次要版本中移除。
接口不会更改,但可能会为 CakePHP 提供的实现中公开的新方法添加注释。
新功能通常只在次要版本中添加,以便用户可以遵循迁移说明。新功能还可以包括在修复行为或报告错误时抛出的新异常。
需要文档的行为更改将在次要版本中进行,但这些更改通常仍然向后兼容。如果问题严重,可以例外。
补丁版本始终向后兼容。只进行修复损坏功能的更改。
通常,用户应该能够依赖于补丁版本不会改变行为,除非是为了修复问题。
更改长期行为的问题通常不会出现在补丁版本中。这些被认为是行为更改,并将进入次要版本或主要版本,以便用户可以迁移。
当添加新的功能,而 API 仍在发生变化时,它可以被标记为 **实验性**。
实验性功能应该遵循相同的次要版本和错误修复版本约定。但是,API 更改可以进入次要版本,这可能会显著改变行为。
用户应该始终预期 API 在实验性功能完全发布之前会发生变化。