Magentoでサイトを構築・運用する際に、頭を悩ませる問題の一つが「アップデート」です。
アップデートを必要としないソフトウエアは存在しないと言って良いくらい、多くのソフトウエアでは日々アップデートが開発・提供され続けています。

Magentoももちろん例外ではなく、これまでも定期的に新しいバージョンが提供され続けてきました。
現在では概ね3ヶ月に1度アップデートが行われる運用になっており、2021年6月現在の最新バージョンは

  • 2.3.7
  • 2.4.2-p1

となっています。

公開されているリリース予定では、次のリリースは8月10日頃となっており、現行バージョンのリリースからちょうど3ヶ月後となっています。

アップデートするか、パッチバージョンで凌ぐか

現在のMagentoのリリース体系は、

  • 純粋なアップデート
  • セキュリティ修正のみを含んだパッチリリース

の2つに分けられています。
パッチリリースはバージョンに「-p1」のようにパッチリリース回数が明記されているので、純粋なアップデートと簡単に区別が付きます。

純粋なアップデートは、

  • セキュリティ修正
  • セキュリティ修正以外の不具合修正
  • 機能改良
  • 仕様変更

などが含まれ、かなり大規模な内容となっています。
特にセキュリティ修正以外の変更点の中には、それ以前のバージョンと挙動が大きく変わるものが含まれていることがあります。
検証が不十分なままに本番反映を行ってしまうと大規模な障害を引き起こす可能性もあるため、十分に動作検証を行う必要があります。

パッチリリースはMagento2.3系の途中で提供が開始されたリリースで、原則として各バージョン1回のみ提供されます。
このリリースにはセキュリティ修正のみが含まれるため、純粋なアップデートよりも影響範囲が限定的なものになっています。
そのため検証作業の手間も比較的少なく、スムーズな本番反映が行えます。
反面、各バージョン1回しかリリースされないために、最長でも6ヶ月に1回のアップデートが欠かせない状態になっています。

このあたりのアップデートに伴うメンテナンスコストの高さは以前から問題視されており、段階的な改善が続けられています。
(完全に解消されるまでにはまだまだ時間がかかりそうです)

Magento Quality Patchesとは

Magento Quality Patchesは、Magento本体のリリースにも含まれているパッチを独立したものとして提供するツールです。
Github上でメンテナンスが行われており、比較的頻繁な更新が行われています。
このツール自体は2020年に提供が開始され、すでに20回以上の更新が行われています。

Magento Quality Patchesのリリースノート

提供されるパッチの種類

Magento Quality Patchesで提供されるパッチは、基本的に不具合修正パッチです。
セキュリティ修正パッチは含まれていません。
つまり、「半年に1回はアップデートしろ」という方針に変更はないわけです。

Magento Quality Patchesの使い方

devdocsにもガイドが書いてありますが、簡単な使い方を解説していきましょう。

インストール方法

Magentoのソースコードがあるディレクトリで、

composer require magento/quality-patches

を実行します。
基本、これだけでインストールできます。

適用可能なパッチの確認

どのようなパッチが適用できるかは、

./vendor/bin/magento-patches status

で確認できます。

利用可能なパッチの一覧

パッチの適用

パッチを適用する場合は、

./vendor/bin/magento-patches apply パッチ番号

を実行します。
パッチには依存関係がある場合があり、依存しているパッチを先に適用しなければならないケースがあります。
Details列に表示されているので、必ず先に適用しましょう。

パッチの巻き戻し

一度適用したパッチを巻き戻したい場合は、

./vendor/bin/magento-patches revert パッチ番号

を実行します。

適用後の試験

当然ですが、パッチを適用したあとは動作試験を行いましょう。
Magento Quality Patchesで提供されているパッチは、必ず適用しなければならないものではないため、すべてのサイトが適用しなければならないものではありません。
リリースされている標準の状態で問題が発生する場合に適用すればよいでしょう。

結局いつかはアップデートが必要

とはいえ、Magento Quality Patchesはアップデートサイクルを伸ばしてくれるものではありません。
ただし、特定の条件下で発生し得る不具合を解消する助けにはなります。

半年に1回はアップデートが必要であるという想定の上で、必要に応じてMagento Quality Patchesが提供するパッチを適用するようにしてください。