CakePHPは、すべてのリリースにおいてセマンティックバージョニングを採用します。 これは ** major.minor.patch ** という形式のバージョン管理規則です。
開発チームは、各リリースが以下の制限と保証に従うことを保証するよう努めます。
一般的にメジャーリリースは下位互換性がありません。CakePHPはメジャーリリースにおいて 全体的な特徴を変更しないように配慮しますが、APIは変更されます。
メジャーリリースにおいては、さまざまな変更の可能性がありますが、 常に行われるのは非推奨機能の削除とインターフェイスの改善です。
各メジャーリリースには通常、アップグレードガイドと、 Rector を使用した さまざまな自動コードアップグレードが付属します。
一般的にマイナーリリースは、以前のマイナーリリースおよびパッチリリースに対し、下位互換性があります。
機能が非推奨になる可能性はありますが、削除されることはありません。
インターフェイスは変更されませんが、CakePHPによって提供される実装で 公開される新しいメソッドにアノテーションが追加される可能性があります。
新機能は通常、マイナーリリースでのみ追加されるため、ユーザーは移行に関する注意事項を 追跡することができます。新機能には、動作が修正されたとき、または不具合が 報告されたときにスローされる新しい例外を含めることもできます。
ドキュメンテーションを必要とする動作の変更はマイナーリリースで行われますが、 通常は下位互換性があります。ただし問題が深刻な場合は、例外もあります。
パッチリリースには常に下位互換性があります。不具合修正のみが含まれます。
通常、ユーザーは、動作を変更せずに不具合修正を行なうパッチリリースに依存できる必要があります。
長年の動作を変更してしまうような問題は、通常、パッチリリースにはありません。 それは動作の変更と見なされ、ユーザーが移行できるようにマイナーリリースまたは メジャーリリースのいずれかの形で提供されます。
APIの変更が進行している箇所に新しい機能を追加する場合、 experimental として 実験的なマークを付けることができます。
実験的な機能は、同じマイナーリリースおよびバグ修正リリースの規則に従うものとします。 ただし、APIの変更により動作が大幅に変わる場合は、次のマイナーリリースに 組み込まれる可能性があります。
ユーザーは、これらの実験的な機能が正式にリリースされる前に、 APIが変更されることを予想することができます。