これを押してください:AlainSchlesserをフィーチャーしたWP-CLIとの下位互換性の難問

公開: 2022-05-17

WMRのWordPressコミュニティポッドキャストであるPressThisへようこそ。 ここでは、ホストのDavid Vogelpohlがコミュニティのゲストと一緒に座り、WordPress開発者が直面している最大の問題について話します。 以下は、元の録音の転写です。

RedCircleを搭載

David Vogelpohl:みなさん、こんにちは。WMRのWordPressコミュニティポッドキャストであるPressThisへようこそ。 これはあなたのホスト、David Vogelpohlです。私は、WP Engineでの私の役割を通じてWordPressコミュニティをサポートしています。毎週、これを押して、コミュニティの最高のものを聞いてもらうのが大好きです。Twitter@wpdavidvで私を見つけることができます。 、またはiTunes、iHeartRadio、Spotifyでこれを押すようにサブスクライブするか、wmr.fmで最新のエピソードをダウンロードできます。 このエピソードでは、WPCLIとの下位互換性のある互換性コネクタについて説明します。 そして、この会話に参加するのは、WPCLIについてかなり知っている人です。 XMPPのWPCLIの寄稿者AlainSchlesserを歓迎します。 アラン、PressThisへようこそ。

アランシュレッサー:デビッド。 こんにちは。 ここにいるのは素晴らしい。

DV:お会いできてうれしいです。 このショーでのあなたの2回目は少なくともこれです。 何年にもわたってWPCLIについて質問してきましたが、本当に楽しんでいます。 聞いている人のために。 WP CLIは、特に自動化とワークフロー、およびWordPressビルドの他の側面に関して、WordPressエコシステムの重要な部分であり、今日取り上げるのは、昨年BPCLAIで何が達成されたかについての考えです。 下位互換性の変更が先にあります。 下位互換性はWordPressの利点の大きな部分であるだけでなく、ソフトウェア開発者の課題でもあります。もちろん、これらの課題にどのように対処しているか、そして最後にWPCLIに貢献する方法について少し共有しています。 なので、面接をとても楽しみにしています。 それで、私はあなたに私がすべてのゲストに尋ねるのと同じ質問をします、そして私はあなたにこれを前に尋ねました、しかし私はあなたができればそれをもう一度言って欲しいです。 WordPressの起源について教えてください。 WordPressを初めて使用したのはいつですか?

AS:ええと、そうですね、私のオリジンストーリーは、ほとんどのWordPressストーリーが小さな回り道から始まるようなものです。 私はルクセンブルクで政府機関として働いていました。 そしてある時点で、私は本当にすべての政治にうんざりしていました。 私は自分の人生で何か他のことをしたいと思っていました。そして別のキャリアを試しました。 そして、私は以前にすでに開発を行ったことがありますが、フリーランサーとしてそれを行ったことがないので、フリーランスの開発を行うことにしました。 そして、実際に何に焦点を合わせるかを決める時が来たとき、私はただそこに何があり、一度に最大の市場シェアを持っていたのかを見ました。 誰もが知っているように、それはたまたまWordPressでした。 そして、私はWordPressの開発を始めたばかりです。なぜなら、0から始まる新しいフリーランサーとしてクライアントを獲得するのが最も簡単だと思ったからです。

DV: DrupalとWordPressの間の素晴らしいエージェンシーを覚えているのと同じ理由で、WordPressをプラットフォームとして選択しました。当時、Drupalが正しい選択だったと思いますが、それは人々がああのようなものについて呼んでいたものではありませんでした。しかし、これは2010年でした。ご存知のとおり、カスタム投稿タイプとメタフィールドの頂点にあります。 そして、私はあなたがこの決定をいつ行ったのか疑問に思っています

AS:ええと、それは2014年の2014年の一部で、WordPressはバージョン332かそのようなものだったと思います。 正直なところわかりません。

DV:フリーランスの開発者として、カスタム投稿サイトのメリットはすでにリリースされています。 そのため、このエコシステムに足を踏み入れて、それらの機能を確認していました。 ただし、WPCLIはさらに2年先にありました。 したがって、開発者として必要なすべてに完全に答えることはできなかったと思いますが、今そのプロジェクトを管理しているのを見るのは素晴らしいことです。 ここで、XMPPを使用していることを理解してください。 そして、XMPPが何をするのか、そしてそこで何をするのかを教えてくれます。

AS :X Delta Pは、高性能のエンタープライズグレードのWordPressプロジェクトに焦点を当てたエージェンシーです。 主な焦点はパフォーマンスにありますが、サイトの読み込み速度だけでなく、ビジネスにどれだけ適合しているかという点でも重要です。 私はXWPを約2年半使用しています。その間、amfa WordPressプラグインと、WordPressプラグインのページエクスペリエンスを一緒に使用しています。

DV:彼らはMIDIプロジェクトのように聞こえます。 私はWordPressに慣れていない、ページエクスペリエンスをまだプレイしていない、XMPPを実際にプレスしているXMPPの人々が何人かいることを知っています。 彼らは本当にクールなプロジェクトをいくつかやっています。 あなたは最もクールなもののいくつかに取り組むようになっているようです。 そして、それは素晴らしいです。 しかし、ショーのトピックに関連して、今日、高レベルからのWP CLIは、WP CLIが何であるかを知らないリスナーがいると仮定して、どのWPCLIを理解できるようにフレーム化できるかどうか疑問に思いました。は。

AS:ええ、確かに。 そのため、WordPressには管理者バックエンドがあり、オプションを構成する場所で変更を加えるサイトのすべてのメンテナンスを行います。 また、WP CLIは、WordPressサイトを制御するための別のインターフェイスです。 コマンドラインから使用できるインターフェースです。 したがって、テキスト形式でコマンドを入力して、サイトを制御します。 これにより、管理バックエンドが実行するすべてのことなどを実行できます。 また、管理者バックエンドよりもはるかに表現力豊かなインターフェイスであるコマンドラインを使用することで、管理者バックに事前に作成されたユーザーインターフェイス要素がないユースケースに非常に固有の多くの問題を解決できます。終わり。 WP CLIコマンドを組み合わせるだけで、これらの問題をどこでも解決できます。 さらに一歩進んで、WP CLIでできることはすべてスクリプトに入れて、最終的にはすべての管理プロセスを自動化し、リモートで実行することもできます。 したがって、テキストベースのインターフェイスに移動することで多くの力があり、WPCLIを使用するとWordPressでそれを行うことができます。

DV:うわー、それは本当にエレガントでした。 あなたはマーケティングだけで別のキャリアを持っていると思います。 これは、VCIをフレーミングするための非常に優れた方法であり、非常に優れていますが、説明することを忘れないでください。 さて、私の見解では、WordPressの歴史の重要な瞬間のタイムラインについての小さな虎の巻があります。これは、人々の起源の話を聞いて、彼らがいつ入ったのか、何が起こったのかを尋ねるときに使用します。時間。 そして、WP CLIは、実際、私がここで呼びかけるWordPressの歴史における重要な瞬間の1つです。 2016年のタイムラインビューでは、それを維持しているので、非常に重要だと思います。 そして、ますます多くの機能をリリースするためのこのプッシュがあることを知っていますが、機能やリファクタリングなどに関連する最近のリリースのバッチを言いたいのですが、最近のリリースで最も興奮したことは何ですか? ?

AS:非常にエキサイティングな機能の1つは、YouTubeが構築されて以来、ツールがフロントエンドプロセスまたは管理プロセスなどとして実行されるかどうかについて、ツールが実行されるコンテキストについて常に議論されていたグローバルコンテキストの追加です。間に。 そして、すべてのアプローチには常に独自の問題が伴いました。 したがって、本当にクリーンなソリューションはありませんでした。 そして、CLIがデフォルトで実行される方法は、管理プロセスでもフロントエンドプロセスでもないこの奇妙な混合物です。 歴史的な理由からですが、これは、たとえば、現在のリクエストが管理者リクエストであるかどうかをチェックする一部のプロセスが自動的に失敗することを意味します。 これは、更新を実行するために実行するときに、プレミアムプラグインとテーマで最も悪名高いことに発生します。 したがって、通常は、管理バックエンドで機能する更新が表示されます。 ただし、WP CLIを使用すると、管理者は表示された状態で更新されないか、期待どおりに機能しません。 これは、プラグインごとにこれらの更新を管理するカスタムロジックが、もちろんフロントエンドの速度を低下させないように管理プロセスをチェックし、WPCLIを自動的に実行するためです。 したがって、この新しいコンテキストフラグを使用して、実行するコンテキストを選択できます。これにより、コンテキストを管理コンテキストに切り替えることができます。 たとえば、プラグインの更新を行うと、突然すべてのプレミアム統合が期待どおりに機能します。 これはとてもエキサイティングです。 申し訳ありませんが、これはそれほどエキサイティングな新機能ではありませんでした。 現在、デフォルトでオンになっていないフェーズでテストしているという点で、cloudwaysと共同で構築されました。 したがって、手動でこの自動プロビジョニングを行う必要があります。これは、次の反復でデフォルトになります。

DV:素晴らしい、素晴らしい。 なぜあなたがそれに興奮するのか分かります。 そして、あなたが考えていたのは本当に賢いことだと思います。フロントエンドまたは管理者がいるのでしょうか。しかし、実際には、開発者に選択肢を与えることで、ある種の解決策、または少なくとも開発者が解決できるようになります。一度に複数のユースケースに対応します。 なぜあなたがそれに興奮するのか分かります。 特にそのヒーローのユースケースについて考え、プレミアムプラグインのアップデートをレンダリングできない。 これはかなり一般的なユースケースです。 そして、他の多くの人がそこからカスケードすることを想像してください。 いくつか質問がありますが、ロードマップに侵入し、下位互換性の考慮事項について考えています。 しかし、私たちは最初の休憩を取るつもりです。 私たちはすぐに戻ってきます。 コマーシャルブレイクにプラグインする時が来ました。 すぐにこれをさらに押すのをお楽しみに。 ホストのDavidVogelであるOmarに提供するWordPressコミュニティポッドキャストをぜひお試しください。 ポール。 私は、WPCLIといくつかの下位互換性コネクタについてローンチの貸し手にインタビューしている最中です。 休憩の直前に、お気に入りの機能、または最近WP CLIについて共有していました。これは、フロントエンドプロセスか管理プロセスかを示すフラグを切り替えるグローバルコンテキストでした。 そして、それは本当に賢いと思いました。 将来のロードマップと下位互換性の種類に入る前に、それに追加したいものは何でも。

AS:ええ、私はそれを本当に楽しみにしています。それはおそらくWPCLIが受ける最も頻繁なサポートリクエストの1つだからです。 更新が管理バケットで機能するのに、WP CLIで機能するのはなぜですか?

DV:ええ、そのプレミアムプラグインリポジトリプロセスは頭を抱えており、WordPressで見つけたさまざまな場所がありますが、ええ、それが人々のようなコア機能であることがわかります、なぜそれはこれを行わないのですか? ? それはWordPressにとってとても基本的なことです。 それはすごいです。 WP CLIの将来について考えるとき、下位互換性に関する考慮事項をすぐに紹介したいと思いますが、将来に向けて興奮している上位2つまたは3つの機能が気に入っています。

AS:ですから、私がかなり前から計画していたのは、WPCLIの足場を完全にオーバーホールすることです。 スキャフォールディングコマンドは、テンプレートを使用して、空のテーマの生成や空のプラグインの生成などのコードを生成できるようにするコマンドです。 そして、私はスーパーボウルを完成させて、Getting Startedツールではなく、WordPress開発で使用されるすべての概念が独自のコマンドを持つ自閉症コマンドを使用したLaravelスペースのように、継続的な開発ヘルプを作成したいと思いました。その正規バージョンを生成します。 そして、それは開発を劇的に加速するだけでなく、途方もない学習ツールであり、WordPressスペースの全体的な品質を形作るのに役立ちます。

DV:それは本当にいい音だし、下位互換性が摩擦を引き起こしているかもしれないところを想像することもできます。ロードマップ機能のようなものは他にありますか? それは他のかなり良いものでしたあなたは追加したいですか?

AS:現在もサードパーティのコマンドであるプロファイルコマンドの書き換えで現在行われている作業もあります。 まだバンドルされていません。 しかし、その書き換えが終了したらすぐに、そのコマンドをバンドルして、誰もが簡単にプロファイリングできるようにしたいと思います。 Webサイトが要求し、どのアクションが必要かを確認して、主なパフォーマンスのボトルネックが発生しているフィルターを監視します。

DV:それはもう1つの良いことです。 さて、あなたは2つのジューシーなロードマップアイテムを持っています。 もちろん、あなたは未来について考えているだけでなく、他の貢献者も未来について考えていると確信しています。 しかし、明らかに、WordPressでは下位互換性が重要です。 では、そのロードマップを実現する能力について考えるとき、どのような考慮事項が頭に浮かびますか?

AS:ええ、WP CLIはそれが機能する方法であり、その内部の機能はWordPressコアの下位互換性ポリシーに直接結びついています。 現在、WordPressCoreは少なくともPHP5.6をサポートしています。WPCLIもサポートしています。 また、WP CLIには、WordPressの最小値が何であれ、それが変更されるたびにポリシーがあります。 WP CLIは、その変更を少なくとも1年間遅らせて、すべての人がWPCLIを使用して古いサイトから移行できるようにします。 新しいサイトへ。 また、WP CLIは通常、古いサイトからの移行に使用されるツールであるため、エクスポート担当者に対しても機能する必要があります。 したがって、WP CLIは、PHPの新しいバージョンなどをサポートするアプローチをリードすることはできません。 それは、古いサイトにアクセスして移動できるようにするという主な目的に失敗するからです。 そのため、その点で、コードを新鮮で保守しやすい状態に保つ方法でWP CLIで開発を行うことは非常に困難ですが、WordPressコアでこの非常に低いPHP最小要件に固執するため、ますます多くの問題が発生しています。

DV:コアが5.6の最小バージョン番号をいつ引き上げるのか、いつ知っているのか。 次にABがあります。これは、5.6が過去のかなりの数のバリエーションであり、それをはるかに遡って維持するのが難しいためです。より新しいバージョンが最小になる時期にビーズがありますか?

AS:正直言って、サブハッピープロジェクトに多くの作業を費やしたとは言えません。このプロジェクトでは、WordPressコードを新しいバージョンのPHPにすばやく移行するための技術的に実現可能なメカニズムがたくさんあります。この時点で、すべての技術的前提条件は次のとおりです。そこの。 それはただ決断を下すだけの問題です。 そして、それがいつ起こるかは言えません。 かなり前から計画されていたのですが、今のところ何も起きていません。

DV:それで、WP CLIがサポートされている最小のPHPバージョンを上げることができるのは、1年後のことですが、その瞬間からです。 ソフトウェアスタックや言語の他の部分、またはロードマップで提供する能力について考えるときに重荷になるものはありますか、それとも主にPHPですか

AS:下位互換性の観点からですか? 主にphpです。 WP CLIは、PHP、gherkin、およびシェルスクリプトで構築されています。 したがって、gherkinは実際には問題ではないテスト言語であり、シェルスクリプトは20年間変更されていません。 近いうちに問題はないと思います。

DV:明らかに、ソフトウェアを非常に古いバージョンのPHPと互換性を保つことは困難ですが、私が理解するのに役立つように、それはどのように困難ですか? 5.6のサポートに固執するために、あなたがしなければならないトレードオフは何ですか

AS: 5対6をサポートすること自体は、それほど大きな問題ではありません。 これは言語の1つのバージョンにすぎず、醜い言語でした。 当時は、それでも非常に使いやすいものです。 問題は、最新バージョンのPHPでも実行できるようにするかどうかです。 したがって、そのスペクトル全体をカバーする必要があります。 最小バージョンを上げていない限り、サポートする必要のあるバージョンをPHPで追加するだけですが、今では毎年新しいメジャーバージョンがリリースされるので、彼らはマイナーバージョンですが、機能の面ではメジャーバージョンであり、最近のいくつかのリリースでは、言語がより大きく、より根本的に変更されています。 そして今のところ、5、6、8 2の両方で同時に機能するように、より低レベルでより低レベルの構造を構築することは非常に困難であり、時間の経過とともに悪化するだけです。 そして、それに加えて、PHPで作業するために必要なツール、単体テストを実行する必要がある、機能テストを実行する必要がある、などです。 このツールはすべて、PHPユニットを使用する何かのためにPHPケイデンスに固執します。 たとえば、テスト自体がPHPユニットのすべてのバージョンで機能するようにテストを作成することは、今では非常に困難です。 これらすべてのPHPバージョンをカバーするためにを使用する必要があります。

DV:わかりました。これは、これらすべての複数のコホートの重みです。PHPは、ユニットTAを入力します。また、新しい関数としてさまざまなバージョンの関数をどのように使用しているかを知っていると、おそらく苦労していると思います。利用可能になり、非推奨になります。 そして、余分な作業のすべてのコレクションは、新しい機能を提供する能力を圧迫する摩擦であるように聞こえますが、それは公平に聞こえますか?

AS:ええと、PHPもますます厳しくなっています。 そのため、以前は複数のバージョンのPHPをマップする必要があり、コードをあいまいにして、いずれかのバージョンの問題が発生しないようにすることができました。 HPは、ほとんどの場合、大量の通知と警告、および非推奨の問題をスローするため、これはますます困難になっています。 これまでの詳細については、ビルドを複数回実行する必要がある関数を作成し、実行しているPHPのバージョンに応じて、その関数の適切なバージョンをプルするメカニズムを備えていることを意味します。すべてのメンテナンス作業が指数関数的に増加します。

DV:ええ、それは完全に理にかなっています。 さて、私はちょっと調べ始めたいと思います、あなたが知っている、あなたがそれをどのように着飾るか、そしておそらくWordPressが一般的にどのようにうまくいくかについてのあなたの考えさえ、そしてあなたが知っている、後方互換性を着飾ることです、しかし私たちは最後の休憩を取るつもりです、そして私たちはすぐに戻ってきます。 コマーシャルブレイクにプラグインする時が来ました。 すぐにこれをさらに押すのをお楽しみに。 さて、誰もがWEMRでこのWordPressコミュニティポッドキャストを押すことを歓迎します。 私たちは、WP CLIとの後方居住性の難問について、ローンチの貸し手と話し合っている最中です。このショーでは、早口言葉のタイトルを選択する必要がありました。 しかし、ここにあります。 長い間、それは良い本です。 ええ、それのように私はそれが終わる前に3倍速く言わなければなりません。 しかし、大丈夫です。休憩の前に、PHPの複数のバージョンを扱い始めるときに、この指数関数的なメンテナンスの問題について話していました。これで、一人で気分が良くなるかどうかはわかりませんが、WPエンジンの100%のように顧客は最新バージョンのPHPでパッチを適用されており、これらの更新を強制しましたが、明らかにすべての人がパッチを適用しているわけではありません。 右? すべてのホストがウェブサイトをホストするすべての人がこのことを行うわけではないので、これはただのオシンセットを作成し、時代遅れ、ソフトPHPバージョン、あるいはWordPressでさえ確かにプラグインを作成します。 ですから、このWordPressの性質は、この下位互換性の考え方がWordPressの一部であり、私が自分で設定した場合、その人気の強さは重要です。 WP CLIは、アップグレードが必要な人々のために仕事をしているため、遅れる必要があります。 それは良いことですよね? それはそのダイナミックの良い部分です。 しかし、WP CLIまたはWordPressのいずれかが、これらの良い部分を維持し、下位互換性の指数関数的なメンテナンス要件などの悪い部分をさらに回避することで、全体としてどのように改善できるかについて、あなたの考えはどうでしょうか。 その令状についてどう思いますか?

AS:ええ、私は今、WordPressがPHPに関して現在行っている非常に極端な下位互換性アプローチに固執することで、ユーザーベースに不利益をもたらしていると思います。すべての兆候が事実に向かっているように見えるからです。 WordPressを最新バージョンのPHPで実行し続けることができない段階にゆっくりと入るということです。これは実際の問題です。 そして、互換性に取り組むには多くの時間が必要になります。これは、現在PHPで行われている変更と同じくらい多くの変更が行われているためです。 そして、これを解決する唯一の方法は、PHPに遅れをとる可能性のあるPHPサイクルに適応する継続的なアプローチをとることですが、問題を悪化させるだけのPHPよりも速度が遅い可能性はありません。 したがって、2年遅れていなくても、PHPの速度に合わせる必要があります。 そして、ツール、テスト、ツールなどのすべてを最新の状態に保ち、常に最新バージョンのPHPのサポートに取り組むことができるようにする必要があります。 、アプローチを変更しないとWordPressに適応できなくなるため、PHP9がおそらく最初のバージョンになるでしょう。 うまくいけば、大丈夫、はい。

DV: WP CLIで扱っているこの指数関数的な問題は、WordPress全体で複雑になっているように聞こえますが、あなたが言及した課題のように、頭を抱えているようです。 PHP9の場合。 そして、このような意味で理にかなっているので、WordPressをより良く維持するために必要なこの種の動きは、サービスに大きく遅れたり、PHPバージョンに大きく遅れたりしないように、その速度に一致している必要があります。 ここ数分で、下位互換性に関する多くの課題があることを私は知っています。 あなたは素晴らしい機能を提供してきましたが、もっと提供したいと思っています。 そして、グーテンベルクへの寄稿者が殺到しているのを見たように、寄稿者のためのこのポッドキャストでWP CLIを少し愛さない限り、私はサービスを提供しないだろうと感じています。 WordPressのこの非常に重要な部分を存続させ、運転し続けるために、人々はどのようにWP CLIに貢献できますか?

AS:まず、メインのwordpress.orgSlackチームに所属しています。 CLIチャネルがあります。 そのため、そのチャネルにアクセスして、こんにちはと言って質問することができます。 また、開始したい場合は、WPCLIの貢献に参加するのを喜んで手伝ってくれる人が常にいます。 また、ウェブサイトmake wordpress.org/cliもあります。これは、すべてのドキュメントのエントリポイントであり、優れた創刊号などへのリンクです。 そして理想的には、あなたは今再び起こっているウェブカメラ貢献者の日の1つに参加するでしょう。 本当に嬉しいです。 これらの貢献者の日々の間に、人々は実際にあなたが適切なローカル開発を行うためにあなた自身のマシンをセットアップするのを手伝うことができるからです。 これにより、作品のライブが停止します。これは、オンボーディングが、人々がインストールしなければならない最も難しいハードルである場合があるためです。

DV:ええ、私はそれを証明することができます。 貢献することになった数人の友人と彼らが克服したこと。 コースや指導がほとんどない人がかなりいることは知っています。もちろん、WordPressにはドキュメントの面でもその周りのものがあると思いますが、それは本当に良い点であり、その側面を支援する貢献者の日です。 また、Slackチャンネルへの参加を呼びかけた方法も気に入りました。 それは、マイク・リデルがどのようにしてWordPressに関与し、Mac Mullenwegのブログ投稿にコメントしているのかを思い出させますが、社会的文脈で貢献するという概念は、より大きな何かにつながります。 まあ、これはとてもクールでした。 本日はご参加いただきありがとうございます。

AS:ありがとうございます。

DV:ここにお越しいただきありがとうございます。 アロンが何をしているのかについてもっと知りたいのなら。 makewordpress.orgにアクセスしてWPCLIサイトを検索するか、wordpress.orgslackとWPCLIチャネルで彼を見つけてください。 WMRでこのWordPressコミュニティポッドキャストをプレスするのを聞いてくれてありがとう。 繰り返しになりますが、これはあなたのホストであるDavidVogelpohlです。 私はWPエンジンでの役割を通じてWordPressコミュニティをサポートしています。 そして、私はここPressThisで毎週コミュニティの最高のものをあなたにもたらすのが大好きです。