Drush Launcher が使えなくなるよという話
Drupalでよく使うDrush コマンドのラッパーDrush Launcherが2023/8/19でアーカイブになり、Read Only となりました。
プロジェクのdrushコマンドいい感じに発見してくれるDrush Launcherは超便利だったのですが、まぁメンテ終了はしょうがないかなという感じがします。
困る時はいつか
Drush12系にアップする時
互換性がなくなるのでDrush Launcher経由でdrush実行ができなくなります。
vendor/bin/drush 〜 みたいに直実行すれば全然問題ないです。
PHP8.2対応時
Drush12系にあげたいタイミングがいつかというと、PHP8.2の時点です。
PHP8.2 で Drush11系を使うとエラーが出るので、Drush12系にあげるとdrushが見つからない事象に遭遇します。
10.2.0 以上にアップする時
Xで新情報いただきました。感謝!
Drupal 10.2.0 から Drush 12系必須らしい。
code:composer.lock
"conflict": {
"drush/drush": "<12.4.3"
},
実は困らないこと
DDEVやLandoなど使っている人
ddev drush 〜, lando drush 〜 など DDEVやLandoが(たぶん)独自パス解決しているので困らないですね。
BLT使っている人
BLTもDrush12系サポート済みなのでBLT経由でDrupalを操作している人は困らないです。
Acquia Cloud Platformを使っている人
よくわかっていないのですが、Acquia Cloud Platform 自体にdrushを複数バージョン持っている気がします。そしてパスも独自解決しているので問題なしです。
対策
PATHにdrushが存在するパスを追加する
最近だと1つのコンテナとか1つのEC2に対して1つのアプリケーション(Drupal)しか載せないと思うので、直にパス解決してもいいんじゃないかなって思っています。
ようはcomposer管理のディレクトリにある vendor/bin/ を認識できるように$PATHに追記してあげれば終了ということですね。
パス解決をやらず直実行する
vendor/bin/drush 〜のように直実行します。自動デプロイがあるサイトだとわざわざコマンドを打たないと思うのでこれでいい気がします。
独自Drush Launcherを作っちゃう
こういうのはその後メンテが伴うので面倒・・・と思うので私は採用しないです・・・。
Drush Launcher を採用しているところは結構あるんじゃないかと思います。
地味に困る気がしたのでまとめました。以上おしまいです。