WordPress のコアファイルのパッチを送ってみる試みイベントやってみた!

先日行われたWordCamp東京2013に、Automattic社のSaraさんがいらしていたのですが、立ち話の中で、「日本のWordPressが盛り上がっているのは知っているし開発者が優秀なことも伝わっているけれども、コアの開発にもっと入ってもらいたいとも思う。というか、開発者の様子がちょっと謎かも笑。みんなで何かやったらどう?」という話が出まして、パッチ(改善をコードで送るときのソースのこと)を作って送ってみようの回を、直子さんに見てもらいつつやってみましたので、やり方とかやってみたことのレポートをお届けしたいと思います。

大曲さんに指導される僕。
大曲さんに指導される、痩せたと評判の僕。(写真は直さんが撮影)

基礎知識

どこを見ればいいの?

実際のコミュニケーションやコードのやりとりはどこで行われているのか、見てみましょう。

ザクッと知りたいなら、Make WordPress Core

コアの開発に関する、最近のトピックをブログ形式でやりとりしている場所です。

http://make.wordpress.org/core/
http://make.wordpress.org/core/

今日の時点では、上から、TwentyFourteenテーマの近況報告、Code Revisionという新しいプラグインの開発状況、コアファイルのインラインドキュメンテーションプロジェクトの進捗状況、コアのJSのユニットテストについて、jsonのrest API についてなどが書かれています。

進行中のプロジェクトについて知りたいときはここを見るといいのだと思います。

現場は、WordPress Trac

Tracは、WordPressのコアの開発についていくための場所です。

http://core.trac.wordpress.org
http://core.trac.wordpress.org

WordPress Tracの説明をしているセクションを意訳すると、

Trac はWordPressの開発についていくための場所です。タイムラインセクションで改良を追いかけることができますし、RSSフィードメーリングリストもあります。

バグ報告もトラックで行われます。報告をしてくれる方は、新しいチケットを作ります

このサイトにはWordPress.orgのアカウントでログインすることができます。まだ持ってなかったら、フォーラムで作りましょう。

ソースをここで閲覧するのもいいのですが、SubversionでWordPressをチェックアウトしたいかたはどうぞ

とのことです。もしバグの報告をされる場合は、バグの報告 – WordPress Codex 日本語版を読んでください。注意点もあります。

最新のソースは、-trunk http://core.svn.wordpress.org/trunk/

チケットで出来上がったパッチがコミットされた最新のソースがあります。SVNでチェックアウトすると便利です。

http://core.svn.wordpress.org/trunk/
http://core.svn.wordpress.org/trunk/

実践編パッチを送るまでの流れ

というわけで、実際に送ってみることにしましょう!だいたい下記のような流れになります。

  1. チケットのバグ報告を見てこれ直せそうだな、とか、改善の提案を思いついたりする。
  2. チケットを検索して、同じことが議論中だったりしないか、あるいは、過去に議論されたけれども何らかの理由でそのままにすることにされている、ということがないかを確認する。
  3. 過去に議論が無かったら、チケットを作る。
  4. 自分が作ったチケットか、既存のチケットにパッチを添付する。
  5. パッチがレビューされたり議論が始まったりする。
  6. 新しいパッチが求められたりそのままでOKだったりして、これいいよね、ってなればコミットされる。

svnからのチェックアウト、パッチの作り方、パッチの適用の仕方については、My WordPress Toolbox | Mark on WordPressを参照したり、宮内さんがまとめてくれた、下記を参考にしてください。

昨日の回で日本から送られたパッチの例:直さんのフックのインラインドキュメント

インラインドキュメントは、WordPressのコアファイル内にコメントとして書かれているもので、イベントをやっていたとき、全てのフックにインラインドキュメントを付ける、というプロジェクトがあったので参加しました。

WordPress › Add Inline-Docs for Hooks « Make WordPress Coreに参加方法などの記載があります。

#25382 (Hook Docs: wp-includes/l10n.php) – WordPress Trac

上記は直子さんが作ったチケットで、そこにパッチが添付されています。wp-includes/l10n.phpのファイルの中にある、全てのフックにインラインドキュメントを付ける、という作業を行ったものです。

直子さんが送ったパッチ
直子さんが送ったパッチ

これは、http://make.wordpress.org/core/2013/09/05/add-inline-docs-for-hooks/にある、みんなで全てのコアファイル内のフックに、その使い方やいつのバージョンからあるのか、パラメータはなんなのかを端的に示すコメントを、決まったルールで書いていこうぜ、というプロジェクトの一部です。僕も参加したのですが、コメントを追加するということで何をしているものなのかが分かれば、参加できます。コメントだけだったらエラーとか起こさないですしね(^^)

その後、DrewAPictureさんという方がレビューをして、そのフィードバックをもとに直さんがもう一度パッチを送っています。最終的にコミットされています。

他にも、宮内さんwp-signup.phpのインラインドキュメンテーションのパッチを送っていて、こちらも丁寧なレビューがあって、うらやましいです。

岡本さんが送ったpre_get_postsフックの改良の例

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

こちらは、以前から岡本さんが気がついていた、pre_get_postsフックを使ってフィードに表示される記事の件数を変更することができない、という件を解決するためのパッチです。

気がついたら送っておく、というのはすごくイイなぁと思いました。

画像で見るチケット作成とパッチの送付手順

既出かどうかを検索する

Tracに行って、検索窓に入れればOK
Tracに行って、検索窓に入れればOK

新しいチケットを作る

New Ticket でフォームが出ます。
New Ticket でフォームが出ます。

チケットフォーム

もろもろ入力する。TypeはBug(バグ報告)、Enhancement(改善)、Feature Request(改善要望)です。パッチファイルがある場合は左下にチェックを入れとく。
もろもろ入力する。TypeはBug(バグ報告)、Enhancement(改善)、Feature Request(改善要望)です。パッチファイルがある場合は左下にチェックを入れとく。

このあと、ファイルのアップロードができるようになります。

まとめ

今回は、ファイルのインラインドキュメントを整えましょう、という形で入り口としてとてもやりやすかったです。ものすごく丁寧にフォローもしてくれたので、助かりました。

僕が送ったパッチファイルについてのレビュー(DrewAPictureさんが自分でやったほうが速かったと思うのだけど、トレーニング的にケアしてくれました)
僕が送ったパッチファイルについてのレビュー(DrewAPictureさんが自分でやったほうが速かったと思うのだけど、トレーニング的にケアしてくれました)

それと、Timelineを見ると、毎日衝撃的な数のチケットが作られていて、オープンソースって本当にすごいなぁと改めて思いました。

今後もコーディングスタンダードに合わせていくだとか、僕にもできる機能追加とか改善とかも、少しずつやっていけたらいいなと思いました。

↓ プラグインを作る方々への本、書きました。 ↓

“WordPress のコアファイルのパッチを送ってみる試みイベントやってみた!” への 2 件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です