Drupalアップグレードの簡略化


flickrより)

従来Drupalが成功してきた要因は、頻繁的に前向きな大規模のソフトウェア更正の導入です。結果として、15年間当該してきた数少ないCMSの一つになっていますが、一方、メジャー新リリースするたびに導入したソフトウェア更正に整えることで苦労しました。しかし、メジャーアップグレードで学習曲線にも影響があり、Drupalの可能性に差し障ることもありました。理想として、学習曲線を保ちながら改良をしようと考えているのですが、Drupal9へのアップグレードに向けて、解決方法を発見しました!

▼Drupal 8.2からDrupal 8.3へアップグレード

Drupal 9へのアップグレードを探る前に、Drupal 8においてのアップグレードを把握しましょう。Drupal 8をリリースしてから、Drupal Coreの取り扱い方針を変え、継続的なイノベーションモデルを導入しました。コアの機能拡大・機能更新を半年ごとに実施することにし、そして、拡大モジュール・テーマ・ディストリビューションも同時にアップグレードできるように取り組んでいきます。

上記に書いた方針をとり、BigPipe、ステータスレポートページなどの改良とアウトサイドイン、ワークフロー、レイアウトなどの実験的な改良を8.1・8.2・8.3のバージョンアップと同時に導入し、8.4バージョンアップに向けて、重大なメディア改良を目指して取り組んでいます。しかし、上記のモジュール・機能のバージョンアップは普通のセキュリティーパッチやバッグフィクスアップデートほど簡単になりました。

▼Drupal 8からDrupal9へのアップグレード

Drupalコアの開発者とのディスカッションやSymfonyなどの修業の経験を通してマイナーアップグレードモデル(Drupal 8.2から8.3.へなど)の利点をメジャーアップグレード(Drupal 8から9へ)にも利用しようと結論づけました。それで学習曲線を保ちながらイノベーションを追求できると考えます。

方針として下記のように進みたいと思います。
今後Drupal 8のマイナーアップデートに旧バージョンにも対応できる新機能を導入します。このプロセスでは古いシステムを非対応と判断することが生じるでしょう。しかし、旧システムを廃棄せずにモジュール開発者に新システムへのアップデートを勧めることで、カスタムコードの有効性を保ちながらモジュールを開発していきます。開発していくことでどんどん非推奨コードが蓄積するでしょう。時とともにバージョンダウン対応性を保つのがますます難しくなってくるでしょう。その時点では非対応と判断したシステムを廃棄し、当コードをDrupal9としてリリースします。

ゆえに、Drupal9は非推奨コードを廃棄した前Drupal8バージョンと同様でしょう。そして、新モジュールは最新Drupal8 バージョンのAPIを利用すれば、Drupal 9にも対応できるでしょう。Drupal8末バージョンからDrupal9へのアップデートはマイナーバージョン内のバージョンアップと同じように簡単に提供するつもりです。
このDrupal 9への展開を実現できたら、Drupal 9以降のモジュールの可能性が無限に広がるでしょう。

しかし、このアプローチを実現できるために改良しないといけないポイントは二つあります。まず一つ目に開発者が最新APIを使えばDrupal 8とDrupal 9の両方対応性のあるモジュールを開発できるようにDrupalコアを変革しなければなりません。そして二つ目にDrupal 6、Drupal 7、Drupal 8内のデータミグレーションを全面的に有効にしなければなりません。上記の改良を全てDrupal9リリース前に実現し、モジュール開発に際して最新Drupal 8のAPI使用を薦めたら、全てのモジュールをDrupal 9リリースと共に連用できるでしょう。

▼Drupal 7のユーザーは?

Drupal 7の使用者であれば、いずれアップグレードをすることになるでしょう。しかし、Drupal 9のアップグレードを待つより、近日のDrupal 8へのアップグレードを勧めします。第一歩として最新のDrupal 8へアップデートすれば、そのあとのマイナーバージョンアップもたやすくなります。Drupal 7からDrupal8へのミグレーションツールは未完成ですが、2017年リリース予定の8.4.0バージョンで提供できるように現在取り組んでいます。

▼Drupal開発者は?

あなたがモジュール開発者、もしくはテーマ企画者なら、これからマイナーバージョンリリースごとにAPIにアダプトできます。非推奨コードを避けたら、Drupal9のリリースと共にあなたのモジュールを連用できます。今後開発者が非推奨コードを指定できる、アップデートできるように取り組んでいます。

▼Drupalコア開発者は?

あなたがDrupalコアの開発者であれ、新機能を導入したいのならDrupal 8での実現は可能です!旧バージョンへの対応性を保ったDrupal 8にも大きな改良を導入するつもりです。

▼Drupal 9はいつリリースされるの?

今後半年ごとにイノベーティブなリリースを発表し、Drupal 9への礎を築いていきます。Drupal 8への新機能導入やアップデートの可能性がまだまだあります。Drupal9リリースはまだ先の話ですので詳細が決まり次第、また報告いたします。

***今後の開発方針の下バージョン対応性に関してWim LeersによってDrupal Con Baltimore 2017で発表したプレゼンを参考にしてください:
https://www.youtube.com/watch?v=RXEzM7w_rak&index=21&list=PLpeDXSh4nHjR…

==元記事==
http://buytaert.net/making-drupal-upgrades-easy-forever