先日行われたWordCamp東京2013に、Automattic社のSaraさんがいらしていたのですが、立ち話の中で、「日本のWordPressが盛り上がっているのは知っているし開発者が優秀なことも伝わっているけれども、コアの開発にもっと入ってもらいたいとも思う。というか、開発者の様子がちょっと謎かも笑。みんなで何かやったらどう?」という話が出まして、パッチ(改善をコードで送るときのソースのこと)を作って送ってみようの回を、直子さんに見てもらいつつやってみましたので、やり方とかやってみたことのレポートをお届けしたいと思います。
基礎知識
どこを見ればいいの?
実際のコミュニケーションやコードのやりとりはどこで行われているのか、見てみましょう。
ザクッと知りたいなら、Make WordPress Core
コアの開発に関する、最近のトピックをブログ形式でやりとりしている場所です。
今日の時点では、上から、TwentyFourteenテーマの近況報告、Code Revisionという新しいプラグインの開発状況、コアファイルのインラインドキュメンテーションプロジェクトの進捗状況、コアのJSのユニットテストについて、jsonのrest API についてなどが書かれています。
進行中のプロジェクトについて知りたいときはここを見るといいのだと思います。
現場は、WordPress Trac
Tracは、WordPressのコアの開発についていくための場所です。
WordPress Tracの説明をしているセクションを意訳すると、
Trac はWordPressの開発についていくための場所です。タイムラインセクションで改良を追いかけることができますし、RSSフィードやメーリングリストもあります。
バグ報告もトラックで行われます。報告をしてくれる方は、新しいチケットを作ります。
このサイトにはWordPress.orgのアカウントでログインすることができます。まだ持ってなかったら、フォーラムで作りましょう。
ソースをここで閲覧するのもいいのですが、SubversionでWordPressをチェックアウトしたいかたはどうぞ。
とのことです。もしバグの報告をされる場合は、バグの報告 – WordPress Codex 日本語版を読んでください。注意点もあります。
最新のソースは、-trunk http://core.svn.wordpress.org/trunk/
チケットで出来上がったパッチがコミットされた最新のソースがあります。SVNでチェックアウトすると便利です。
実践編パッチを送るまでの流れ
というわけで、実際に送ってみることにしましょう!だいたい下記のような流れになります。
- チケットのバグ報告を見てこれ直せそうだな、とか、改善の提案を思いついたりする。
- チケットを検索して、同じことが議論中だったりしないか、あるいは、過去に議論されたけれども何らかの理由でそのままにすることにされている、ということがないかを確認する。
- 過去に議論が無かったら、チケットを作る。
- 自分が作ったチケットか、既存のチケットにパッチを添付する。
- パッチがレビューされたり議論が始まったりする。
- 新しいパッチが求められたりそのままで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フックを使ってフィードに表示される記事の件数を変更することができない、という件を解決するためのパッチです。
気がついたら送っておく、というのはすごくイイなぁと思いました。
画像で見るチケット作成とパッチの送付手順
既出かどうかを検索する
新しいチケットを作る
チケットフォーム
このあと、ファイルのアップロードができるようになります。
まとめ
今回は、ファイルのインラインドキュメントを整えましょう、という形で入り口としてとてもやりやすかったです。ものすごく丁寧にフォローもしてくれたので、助かりました。
それと、Timelineを見ると、毎日衝撃的な数のチケットが作られていて、オープンソースって本当にすごいなぁと改めて思いました。
今後もコーディングスタンダードに合わせていくだとか、僕にもできる機能追加とか改善とかも、少しずつやっていけたらいいなと思いました。
コメント
コメント一覧 (2件)
[…] 内容は、WordPressの開発やドキュメンテーション、コア以外のモバイルアプリなどどんな場面でWordPressに貢献することができるのか、という内容でした。最近では、宮内さんをコーチとしてWordPressコアのInline Documentationにチャレンジする、ということを体験していたので、僕にとっても楽しい会でした。 […]
[…] WordPress のコアファイルのパッチを送ってみる試みイベントやってみた!-Shinichi Nishikawa’s […]