CakePHPプロジェクトに、プルリクエストを送ってみました
こんにちは。Apple WatchでポケモンGoを使ってみましたが、4ヶ月前に欲しかったな、と思ってるtanakaです。
いままでCakePHPを多くのプロジェクトで導入してきて、使い方をバシャログで沢山紹介してきました。ある程度使っていると、偶然にもコアのコードやドキュメントに間違いを見つけることがあります。
この記事ではCakeコミュニティのみなさんに助けてもらいながらいくつかのプルリクを送ってみた話をします。
まとめ
もし、CakePHPのソースコードやドキュメントにバグやtypoを見つけた場合は、プルリクエスト(以下プルリク)を送ったことがある方に相談するか、日本語チャット( CakePHP公式の日本語話者向けSlackチャンネル開設のご案内 - Qiita )で、聞いてみるとよいでしょう。 自分でプルリクを送るかどうかにかかわらず、情報は大歓迎かと思います。
Issueやプルリクを送る場合、メッセージを英語で書く必要があります。 英語についてはあまりできている自信がありませんが、伝われば大丈夫です。(あとで見返すと"find"じゃなくて"found"だったかな、とかありました…)
最近送ったプルリク一覧(時系列順)
2015/07 (docs) 2.1 移行ガイドの訳修正
社外勉強会で翻訳活動をされている方に相談してプルリクのサポートをしていただきました。
2016/10 (docs) CakePHP クックブックのバージョン/言語切り替えが一部ブラウザでできない不具合
CakePHP Slack日本語チャンネルにて不具合について相談しました。途中別の不具合を引き起こして、沢山のプルリクを送ることになってしまい、ご迷惑をおかけしました。
2016/11 (docs) コンポーネントのテストがうまく動作しない不具合
こちらは手元で修正できたので、プルリク以外の相談なしでした。
2016/11 (app) composer create-project
で生成されるテストコードのtypo
こちら単純なタイプミスなので相談せず。プルリク作成から5分でマージしていただきました!
2016/12 (cakephp) Http\Client\Response::getStatusCode()
の戻り値がint
型でない不具合
こちらは不具合かどうか確証が持てなかったのでSlackで報告し、不具合であると教えて頂いてからプルリクを作成しました。
5番目のプルリクはcakephpコアへの修正だったので、CakePHP 3.3.11 リリースノートに名前が載りました!
モチベーションについて
プルリクを送ってみるまでは、「オープンソースへの貢献」とかカタいことを考えてました。が、実際やってみると、CakePHPを利用しながら「自分にできること」を徐々に広げていった結果、プルリク出してた、という感じです。 自分が書いたコードかサードパーティライブラリのコードかに関わらず、typoや不具合は気になります。そこで自分のできることをもっと広げるチャンスなのかな、と思います。
プルリクを送るときに役立つツールとドキュメント
- 貢献 …最初に読む資料。作業を始めてからプルリクを作り、アドバイスをもらいながら修正しマージされるまでの流れが書いてあります。
- Travis CI - Test and Deploy Your Code with Confidence …作業するときは、GitHubでリポジトリを自分のアカウントにコピー(フォーク)することになります。自分側のリポジトリとTravis CIをセットアップしておくとプルリクエストを送る前にエラーをチェックできて安心です。
- Google 翻訳 …Issue/プルリク上のメッセージやりとりはすべて英語です。英→日、日→英の両方で役に立つことでしょう。
- CakePHP公式の日本語話者向けSlackチャンネル開設のご案内 - Qiita …日本語で相談できるSlackチャットルーム
- プルリクエストとは?【プルリクエスト】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ プルリクエストが初めての方