コントリビューターデイでWordPress日本語版について話しましょう!

さて、明日はWordCamp Tokyo 2018 のコントリビューターデイが開催されます。

コントリビューターデイとは、WordPress本体の改善や、翻訳、ドキュメントの充実など、いろいろなチームに分かれて、各自が興味がある内容に貢献していこうというイベントです。

最近の日本のWordCampは海外のコミュニティの人たちが参加してくださる方があたりまえになってきておりまして、明日のコントリビューターデイでは、WordPress本体やWP-CLIのコミッター、MetaチームというWordPresss.org全体のインフラを支えるチームのコミッター、Gutenbergのリード開発者なども来日して参加してくれます。

そして、僕はコア/CLIチームのメンターの一人として、WordPress本体やWP-CLIへの貢献をみなさんと一緒に頑張っていきたいと思っています。

日本語パッケージについて話しましょう!

今回のコントリビューターデイでは、個人的に抱えるいくつかの課題を問題提起として準備したいと思っています。

あくまでも個人的に考えていることなので、公式なものではありませんが、オープンソースプロジェクトなのでそもそも公式な課題というもの自体が存在していないことも理解してくださいね。

というわけで WordCamp Tokyo というこの機会を利用して、ぜひ以下の内容について話し合ってみませんか?

WP Multibyte Patch が抱える問題点

個人的に過去1年ほど気にしている課題が日本語パッケージに同梱されている WP Multibyte Patch に起因する問題です。

WordPressには非常にたくさんのローカライズパッケージが存在していますが、その中で、カスタムプラグインを同梱しているローカライズパッケージがいくつか存在しています。

皆さんご存知の通り、日本語パッケージには WP Multibyte Patch というプラグインが同梱されていますね。

日本のユーザーの皆さんは、このプラグインのおかげで、日本語特有のいくつかの問題を気にしなくても快適に WordPress を使えるようになっていますが、長い年月を経て、いくつかの不具合が目につくようになってきました。

リリースにタイムラグが生じている

多くのローカライズパッケージは、本家版(英語版)がリリースされると同時にリリースされているのですが、カスタムプラグインを同梱している日本語版は、そのプラグインとの互換性を確認する時間をもうけるために手動でリリース作業が行われています。

メジャーリリースのように仕様変更が入るケースなら仕方ないのですが、セキュリティリリースも同様に手動でリリースされており、昨年には1週間以上リリースが遅れるという事例もありました。

僕が本家のSlackやTrac等でコアチーム等のメンバーと話したところ、「壊れたパッケージを配布するわけには行かないので、最低でも WP Multibyte Patch に対して CI を導入しないと自動リリースはできないよ」ということだったのですが、何人かの有志でユニットテストまでは書いたのですが、それでも日本語チームさんに CI を導入していただくことができませんでした。(7ヶ月という長期間にわたりディスカッションをしたのですが、合理的な理由を説明して頂けなかったのでぜひお伺いしたいものです。)

https://meta.trac.wordpress.org/ticket/3163

WP-CLI でのエラーや、無駄にアップデート通知が出る不具合などなど

上述の自動リリースに起因して、以下のような不具合も確認されています。

  • 日本語パッケージがリリースされるまでの間、古いバージョンのパッケージが配布される。ユーザーはインストールと同時にアップグレードする必要がある。
  • 本家版と日本語版、それぞれ計2回のアップデートが必要。
  • WP-CLI の wp core download コマンドで、ローカライズパッケージがリリースされるまでの間エラーが出る。これはクラウド等を利用したインフラ構築の自動化でとても不便。
  • 日本語版を利用していると、マイナーリリース後に本家版がインストールされるので、その時に英語版に切り替わったことになる。これによって wp core verify-checksums などの改ざんチェックツールでエラーが出る。

メールのエンコードが ISO-2022-JP がデフォルトになっている

WP Multibyte Patch を有効化すると、メールのエンコードが ISO-2022-JP になります。これは ”とても” 古いメーラーに対応するための処置で、10年ほど前まではたしかにこのエンコード方法が必要だったとは思いますが、現在も ISO-2022-JP をデフォルトにするべきでしょうか?

現在の WordPress は、管理画面の言語をユーザーごとに切り替えられるようになっています。もし WP Multibyte Patch を有効化している場合、多言語サイトではメールが文字化けします。

一方で、いやいや ISO-2022-JP じゃないと。。。という声も依然ちらほらあるようですが、現実問題としてGmailやWindows Live メールなどは、UTF-8 でメールを送信しています。

ISO-2022-JPが100%ダメとは言いませんが、これがデフォルトであるべきかどうかは、きちんと議論するべき課題だと思います。

https://core.trac.wordpress.org/ticket/44548

不適切と思われる処理がある

WP Multibyte Patch の中には、JS ファイルを readfile() して正規表現で置換して出力するという処理があります。

これに関しては一部のコミッターから辛辣の批判を耳にしており、公式なパッケージに同梱されているプラグインがおこなう処理としてはいささか疑問があります。

https://github.com/miya0001/wp-multibyte-patch/blob/master/wplink.php#L39-L48

これは、それほど難しいパッチではないので、後述のようにきちんとコアに取り込んでもらうべき処理ではないですかね。

https://core.trac.wordpress.org/ticket/44662

WP Multibyte Patchでフィックスされている問題はコアで報告されていなかった

WP Multibyte Patch では、日本語に関連するいくつかの不具合を修正していますが、日本語チームではこれらのフィックスに対してコアチームには一切報告していません。

ひとつだけ、チケットが建てられていたものもありますが、それは東ヨーロッパのユーザーがキリル文字に対応するために立てた内容です。

正直言って僕はこの状態は好ましいものではないなと思っていて、さらに WP Multibyte Patch のドキュメントが日本語でしか存在していない現状を考えると、日本語チームも含めて WordPress に関する様々なワークフローやオープンソースに関するフィロソフィー的なこともきちんと話し合うべき問題だと思っております。

現在は、ほぼすべてのチケットを立てましたが、それは過去数ヶ月に僕と僕に近い熱心な貢献者さんたちでチケットをたてたものです。

Issueを管理する仕組みがない

WP Multibyte Patch には、Issue を管理する仕組みがありません。このプラグインで実装されている機能がどこでどのように決まっているかを僕でさえ知ることができません。

上述の様々な問題も踏まえると、仕様を決定するプロセスに疑問があり、日本語パッケージに今後もデフォルトで同梱し続けることには疑問を感じています。

オープンソースプロジェクトでは声を上げることが大事

さて、なぜ今回このような記事を書いたかというと、これらの修正についてはすでに熱心な貢献者のみなさんや僕でチケットを立てたのですが、いまいち話が進まないんですよね。

コアコミッターたちと直接はなせば理解してくれるのですが、彼らとしてはやはり日本のユーザーからのフィードバックがたくさん欲しいということのようです。

というわけで現状僕自身は WP Multibyte Patch は日本語版からなくすべきものであると確信しており、そのために必要な修正をコアチームに報告していますが、僕自身も大勢の人の意見を聞きたいと思っています。

そんなわけで、海外から大勢のコミッターたちが来ている WordCamp Tokyo という機会を利用して、日本ではなかなか体験することができない WordPress に関する様々な意思決定に参加してみようではありませんか。

マルチバイトパッチに関連して、現在開かれているチケットは以下の通りになります。

https://docs.google.com/spreadsheets/d/13oGbc7AqEN6OUvmze-JDCKXDdruFqsxqSAdI7-b6Lho/edit#gid=0

日本的な感覚でいうと、他の人がやってくださってることにケチをつけてるように感じるかもしれませんが、そういう意図ではなく、ごくごく一般的なオープンソースのワークフローに従って解決できるものは解決したい一方で、日本語チームという少数かつ固定のメンバーのみが権限を持っている部分に対しては、小さな声ではなかなか声が届かない現実もあります。

あと、僕は WP-CLI のコミッターという関係で普段から海外の開発者といろいろなやりとりをするのですが、それらは僕にとってはとてもエキサイティングで楽しい体験で、一人でも多くの日本のみなさんとこの体験を共有したいとも思っており、それらの体験から、上述した違和感がまったく的はずれだとも思っていません。

というわけで少なくともコミュニティのみなさんと問題を共有し、解決にむけて少しでも前に進めればと思っております。

ぜひ、みなさんの参加をお待ちしています。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください