Gutenberg から WordPress コアへの実験的 API のマージを停止するためのコントリビューターへの新しい提案の呼びかけ

公開: 2022-08-11

Gutenberg の実験的な API を WordPress コアにマージする慣行は、間もなく終了する可能性があります。 Automattic が後援する寄稿者の Adam Zielinski によって公開された新しい提案では、API をコアにマージする前に API を安定させるよう寄稿者に求めています。

何年にもわたって、約 280 の実験的な API が Gutenberg プラグインからマージされました。Zielinski は、4 月に発行したチケットでこれを監査しました。 WordPress の下位互換性への取り組みと、エディターでの反復作業との間で、迅速に動きたいという衝動のバランスを取る中で、実験的な API の数は受け入れられなくなり、それらをコアにマージする慣行は現在積極的に再検討されています。

正式には、実験的な API は変更されることが予想されるため、サードパーティによる使用を思いとどまらせるためにそのようにフラグが立てられています。 実際には、ブロック エディター用に構築する人々は、ブロック エディターがコアにあり、これらの API が可能にする機能を拡張したいため、ブロック エディターを使用しています。

「プラグインとテーマの作成者は、いつでも後方互換性のない方法で削除または変更される可能性のある__experimental機能に依存することを余儀なくされています」と Zielinski 氏は述べ、多くの開発者が過去数年間プロジェクトに対して抱いていたフラストレーションと懸念を反映しています。 「これは深刻なメンテナンス負担です。 Gutenberg/WordPress の新しいリリースはすべて、破壊的変更の可能性を意味します。」

WordPress のコア コミッターである Peter Wilson は、このチケットについてコメントし、実験的な API を最先端の製品に限定することに賛成だと述べました。 この変更の必要性を強調する彼は、これらの主要な実験的 API がエコシステムに与えた多くの悪影響を挙げました。

  • 信頼性を信頼していないため、特定のライブラリ機能を使用してコアタスクを容易にすることを望まないコアコミッター
  • 開発者は WP クライアント サイトをアップグレードしなくなりました。 何年も下位互換性を維持するために努力してきたコア コミッターとして、これは私を失望させます。 セキュリティチームのメンバーとして、それは非常に心配です
  • wp.*​​ グローバルに依存するのではなく、テーマやプラグインにパッケージのコピーを含めることを決定した開発者。 繰り返しますが、これはセキュリティの観点から気になりますが、下位互換性を維持するよりも JavaScript ペイロードを大幅に増加させます。
  • マイナー バージョンで下位互換性が失われているという報告: 「5.9.1 のリリースで、ブロック エディター以外のサイトで多数の画像の応答性が損なわれるとは思わないでしょう」
  • コア ブロックは不安定すぎるため使用しないことを検討している開発者:壊す。 UI がコア ブロックほど優れていないことは確かですが、いつでもブロックを壊すよりも安定性を重視します。」

Gutenberg プラグインは、貢献者がコアにマージする前に機能を磨きながら、後方互換性の中断が予想される機能プラグインとして機能することを意図していました。 このアプローチのルーツに立ち返り、エディタをあまり実験的でないようにすることが、この提案の中心です。

「バージョン間の不安定性は、ブロックエディターの最大の外部支持者の一部をすでに遠ざけ始めています」とウィルソンは言いました.

このレベルの不安定性を維持すると、人々が WordPress で構築することを思いとどまらせる可能性があり、別の方法で管理される他のより単純なプロジェクトに人々を押しやることになります. 実験的な API に依存する必要性が、開発者がより多くの製品を構築することを思いとどまらせ、ブロック エディターの採用を遅らせている可能性があります。

「現在、多くの__experimental API を使用しているプラ​​グイン作成者として、これらが安定するのを楽しみにしています」と、WP Engine が後援する寄稿者の Nick Diego 氏は述べています。 「ほとんどは重要な機能を提供しますが、 __experimental API に依存する製品を構築することは、常に少し当惑します。 プロセスが非常に透明で、広く公開されており、プラグイン/テーマの作成者に安定版への移行方法に関するガイドを提供している限り、私はこのイニシアチブを気に入っています。」

チケットに関する数か月の議論の後、Zielinski は寄稿者の懸念を Make WordPress Core ブログで提案された行動計画にまとめました。

この提案は、すでにコアにマージされている既存の実験的な API のほとんどが、安定したエイリアスを取得することを示しています。

「下位互換性が保たれ、バンドル サイズに大きな影響を与えることはありません」と Zielinski 氏は述べています。 「別の治療が必要な人もいます。 ケースバイケースで議論しましょう。」 彼はまた、コントリビューターが、すでにコアにある既存の実験的な API を削除する必要があるかどうかを検討することを推奨しました。 彼は、このような例が多くあるとは予想していませんが、プラグインの作成者に連絡し、ソフトな非推奨を使用し、コア投稿を公開するという確立された慣行を使用することを推奨しています。

「また、ここでは 2 つのことが関係しています。API 設計中の実験的な API の使用と悪用 (通常、Gutenberg プラグインで使用およびテストされる) と、設計基準を満たしたときに API を安定させるための勤勉なプロセスの欠如です。」 Gutenberg のリード アーキテクトである Matias Ventura は、元のチケットについてコメントしました。 「事実上公開されていると見なされるものは、その命名法にもかかわらず、安定した形で多くのリリースのために存在したものです。」

後方互換性を約束する WordPress の能力を維持するために、この提案では、実験的な API を Gutenberg プラグインに制限し、決してコアにマージしないことを推奨しています。 安定した機能が実験的な API に依存している場合、Zielinski は簡単な答えを特定しました。

「それでは、実際には安定していません。 まずは依存関係を安定させましょう。」

これは基本的に、WordPress の API と更新の安定性と信頼性を高める新しい方法ですが、いくつかの欠点があります。

ユーザーとコントリビューターは、Gutenberg の機能がメジャー リリースでプライム タイムに配布されたときに実験的な API に依存できないため、コアへのマージが遅くなる可能性があることを期待できます。 Zielinski 氏はまた、API が出荷され、何百万もの WordPress サイトで使用されるようになると、貢献者はこれらの API をリファクタリングするのに苦労する可能性があることにも言及しました。

これまでのところ、この提案は圧倒的に肯定的な支持を得ています。多くの人は、これらの API はまだ実験段階にある間はコアに到達するべきではなかったと考えています。

WordPress 開発者の Mark Root-Wiley 氏は、次のように述べています。 「私はカスタム テーマを作成し、いくつかのシンプルなプラグインを使用しています。 どちらの場合も、実験的な API に対処しなければならないことが幾分頻繁にあり、実験的な API を介してのみオフ、調整、または拡張できる機能がコアに組み込まれている場合、それらを最新の状態に保つことの難しさに気付きました。」

WordPress の寄稿者である Dovid Levine 氏は、この提案について次のようにコメントしています。

この提案に対するコメントの締め切りは 9 月 7 日で、WordPress 6.1 ベータ 1 が予定されている 3 週間前に議論が終了します。 これにより、コントリビューターは、次のメジャー リリースに先立って、実験的な API をより深く監査するための時間が与えられます。これらの API を Gutenberg プラグインに制限することについてコンセンサスに達する必要があります。