Blog

ブログ

Advanced Custom Fields(ACF)が入れ替わる騒動で私が行った対応

Advanced Custom Fields公式サイトでの声明文

先週末の三連休のさなかに、人気プラグイン「Advanced Custom Fields(以降、ACF)」が、WordPress.orgによって強制的に、リポジトリをフォークした別名義のプラグイン「Secure Custom Fields(以降、SCF ※1)」へ入れ替えられました。

これはWordPress.orgの母体であるAutomattic社と、ACFの開発元であるWP Engine社の対立が訴訟レベルに発展したことによるものです。経緯は他記事を参照ください。早い段階から一連の問題をレポートしていた、高橋文樹さんのブログがおすすめです。

WordPress公式ディレクトリのAdvanced Custom FieldsがSecure Custom Fieldsに変わってしまう – Capital P – WordPressメディア

2社の対立は今年の春くらいから注視はしており、Automattic…というかCEOのマット・マレンウェッグの主張も理解できます。とはいえ今回の行為は同じスラッグ(プラグインの識別名)でロゴと所有者をごっそり入れ替える「乗っ取り」であり、オープンソースへの信頼を損なう行為であり、ノンフィルターで言うと「理想主義の御殿様のご乱心」であると、個人的には思います。

この記事では、数十人が勤務するIT企業の制作部でCMS案件の担当や指導をしている私が、本件についてここ数日に、どう考え、どのような対処を行ったかを、会社の守秘義務に反しない程度にまとめます。

危機レベルの認識

まず、今の状況がどのくらいヤバいかを認識することにしました。

WordPressに対する危機レベル

私は複数のCMSを使用できます。勤め先の主力はMovable Typeです。ですが今回のことで今後のWordPress向けの案件は他のCMSに乗り換えよう、という提案はしないことにしました。また、その予定もありません。

確かにWordPressへの信頼が揺らいでいますが、某漫画のセリフを引用すると「まだ慌てるような時間じゃない」です。乗り換えの学習コスト、見積への影響、CMSが変わることによる属人化(※2)を考慮しても、現段階での乗り換えはバランスが悪いです。

もしもWordPress.orgに致命的な暴走や分裂が発生した場合でも、オープンソースCMSですから、誠意ある開発者たちが過去バージョンからブランチを切って新たなWordPressを引き継ぐはずです。実際、マット・マレンウェッグに賛同しなかった社員が大量に彼の元を去っており、すでにその一人が「FreeWP」というプロジェクトを立ち上げています。(※3)

プラグインに対する危機レベル

どのCMSでも共通ですが、テーマやプラグインに関する問題は、危機レベルが高い順に以下で考えています。

  • 動作しない不具合
  • 公開された脆弱性
  • 運営チームの倒産や解散
  • 動作する不具合
  • 更新の停止

今回の件は上から三番目「運営チームの倒産や解散」に近く、私は比較的重大なものとして受け止めています。管理者がWordPressの制作元になったとはいえ、ACFが今後に予定していたマイルストーンやタスクをすべて知っているわけではありません(※4)。ACFが2つのプラグインに分裂したということは、確実に差分が出てきてしまいます。これは今後の採用を迷ってしまうには充分なものです。

クライアントとの関係に対する危機レベル

これを書いている時点での私の勤め先(ビットスター株式会社)は、フロントエンドのみの制作会社ではなく、システム開発とサーバー運用が主体のIT企業で、高い知識を持った専任者が常駐していることが強みです。そのような会社で一番恐ろしいのは、お客様のリテラシやセキュリティ意識が通常より高いために、社員よりもお客様の方が早く、かつ、強く危機感を持ってしまう事態です。

例を挙げると、以下のような問い合わせが、心の準備をしていない状態で来てしまう…というものです。

「このようなITニュースを知ったのですが、御社はご存知だったのでしょうか…?」

「先ほど管理画面をチェックしましたところ、プラグインのひとつが全く違う名前に変わっております!これはもしかして改ざんなのでしょうか…!?」

なので、すぐに社内で意思統一を行う必要があると考えました。

社内の意思統一

連休明けの朝に制作部全体に、以下の内容の投稿をしました。

  • ACFについて起きていることの説明
  • 意思決定ができるまでアップデートをしないよう指示
  • 関連する案件の把握
    • ACFを採用している案件名
    • 採用案件の保守状態
      • 保守契約の有無
      • 無料版であるか、自動アップデートにしていないか

私は、すべてのWordPress案件の状況は知り得ませんから、ざっくりと把握してから対応を決める必要がありました。開発や保守ではWordPressを扱っていませんが、趣味で使っている人がいそうなので、全社の雑談チャンネルにも情報共有しておきました。

早速上司から返答があり、月曜日の午後イチで今後の対処を相談して、当面以下の方針にしました。

  • 大きな対応はしない、静観
  • お客様への一報の有無、ACFにするかSCFにするかは、契約や工数で判断
  • 迷ったらACF

詳細は書けませんが、弊社は前項で懸念したような固めの案件は少なかったことで、大半が静観となりました。対応が必要となる場合は、プラグイン名称と運営者変更の一報、機能面に問題はないことの説明、理解したという言質取りが考えられます。

ACFかSCFかは、社内で決めませんでした。特に若い社員について、自分で考えてプラグイン選定のスキルを磨いてほしかったからです。どちらでもないプラグインを使う選択もあるでしょう。このことも方針に補足しました。

検証

私がすることは、まだ終わっていません。ACF、SCFそれぞれを採用した場合の影響や、工数を調べました。

ACFを再インストールした場合

私が運用を担当している社内用のWordPressで、ACFを再インストールすることにしました。

ZIPファイルのACFをインストールする際の、前のバージョンのACFを上書きする確認画面

再インストールは5分もかかりませんでした。ACFの最新バージョンをZIP形式でダウンロードしてきて、新規追加画面でアップロード、上書きするだけです。今後、ACFとSCFの際はどんどん大きくなるので、差し替えるなら早いほうがいいです。

「プラグイン」画面での見た目
「更新」画面での見た目

上の画像二点は、再インストールするまえのプラグイン一覧画面です。「新バージョンのACFが利用できます」と表示されるものの、実際にはSCFに差し替わります。このことは、「更新」画面に表示されるロゴ以外では判別できません。これだけでも今回の件のヤバさがわかります。

インストール後はこれまでと全く同じとなります。最も懸念していたのは、WordPress.org側がACFを使っていることを判別して、管理画面やコンソールに変なメッセージを出してこないか…でしたが、それは流石にありませんでした。

SCFに更新した場合

「プラグイン」画面での自動更新後の見た目

一方、このブログ=屋号サイトは自動更新にしていたので、SCFに変わっていました。左メニューの「ACF」が「SCF」に変わっているくらいの変化なので、WordPressに詳しくないと気付けません。

SCFに更新されたあとのプラグイン設定画面。右上部、下部に表示されていたWP Engineの広告が消えている

プラグインの機能そのものは変わっていないですが、右上にあったPro版へのリンクボタン、画面下にあったWP Engineへのリンクバナーがなくなっていました。

Screenshot

しばらく考えて、特に違いがなかったのでACFを再インストールしました。ACFについても、何か抗議文が表示されていたりしないか…と思いましたが、こちらも特に何もありませんでした。

今後の準備運動

ACFに対する一連の対応は、以上になります。CMSを扱っている者として、今後も双方の動向はアンテナを張って把握しておかなくては…と思います(※5)。

WP Engineがコミュニティから締め出される可能性までは予測していましたが、Automattic社の内紛とか、プラグインの乗っ取りまでは想像がつきませんでした。今後も、何が起こるかわからない前提で構えていなくてはなりません。

先程書きましたが、マットの元を離れたメンバーが新しいプロジェクトをフォークし、そちらが世界的に大きな支持を得る、いわば革命的な流れも予想できます。そうなると本格的に、新しいWordPressを選ぶのか、WordPressをやめるのか考えることになります。

Movable Typeを長年使用していた者としては、2016年で更新を終了したMovable Typeのオープンソース版「MTOS」のことが思い出されます。利益を出しつつオープンソースのシステムを運用し続けることの難しさは理解しているつもりです。だからマットには呆れつつも、否定はできません。

Movable Type Open Source | CMSプラットフォーム Movable Type ドキュメントサイト

補足

※1

「SCF」といえば日本人にとっては、開発は終了しましたが「Smart Custom Fields」のことでした。こんな形で名前を奪われることになるとはなあ…めちゃくちゃ悲しい😭

※2

ここで言う「属人化」とは、社内シェアが少ないシステムに乗り換えたことで、詳しい人=CMS構築の適性が高い社員にだけ極端な負担がかかる現象を指します。

※3

FreeWPを使え、という意味ではないです。こういう動きも現実にあるから大丈夫よ、というニュアンスです。まだこのプロジェクトが安定したコミュニティを築けるか、本家のように優れたデザインチームが参加してくれるか不透明です。私はWordPressというCMSについては、ソースと同じくらいデザイン設計を評価しています。

※4

今年のはじめ、Movable Typeの人気プラグインの作者が本業に専念する目的で、すべてのプラグインの他社への譲渡を行っています。プラグインの開発、保守を止めない素晴らしい対処と思います。WordPress.orgとWP Engineは、WP Engineの主張に間違いがないとすれば、当然、合意や引き継ぎはしていません。

※5

こんなに大騒ぎしているのは、x(旧Twitter)だけだ、というツイートを見かけました。確かにxはちょっとしたことで炎上しやすく、私が最近距離を置いている理由でもあります。だからといってxの情報は信用できないと考えるのは早計です。エンジニアはxを長年使用している人が多く、ピークは過ぎたとはいえ本音が出やすい土壌があります。また、閲覧制限がない最近では珍しいSNSでもあります。そこで当事者の本音が出まくっているわけで、過信はできませんがアンテナは張っておく必要があります。