こんにちは、BASE株式会社 BASE Product div サーバーサイドエンジニアの東口です。主にサービスの決済部分とPHP・CakePHPのバージョンアップをしています。
CakePHP2.10.9のリリースに対して、Koji TanakaさんとKazuki Higashiguchiがcontributeいたしました。
Release 2.10.9 · cakephp/cakephp · GitHub
自分自身は、BASEに入社してからCakePHPを仕事で使い始めて半年、初のコントリビュートでした。備忘録としてコントリビュートに至った経緯を残していきます。
何をしたのか
Release 2.10.9 · cakephp/cakephp · GitHubを引用すると下記のBugFixを行いました。
CakeTestCase::getMockForModel() now correctly handles secondary connections.
だいたいの流れ
きっかけは、テストコードを書いていた際になぜか意図しない挙動をすることに同僚が出くわしたことでした。 実際に起きていたことはIssueに書いた内容ですが、テストケース内で、メインではないDBに接続するModelをmockするメソッドを使用した際に下記のエラーが発生していました。
MissingConnectionException: Database connection "Mysql" is missing, or could not be created.
Issueを出すところまで、既にプルリクを何度も送っている同僚のKoji Tanakaさんにざっくり教えてもらいながらやりました。おおまかな流れは以下です。
- 調査
- いけそうな修正方針決める
- Issueを出す
- 機能修正する
- テストを修正する
- Pull Requestを出す
- マージしてもらう
今回は、既にテストコードが書いてあり通っていたのでなぜ通っているのかという原因調査が少し大変でした。
マージされた
phperkaigiの裏でこつこつ出してたcakephp本体へのcontributeが通った^-^
— kazuki.higashiguchi (@Khigashiguchi) 2018年3月10日
今回のバグの原因調査にあたり、中のコード読んだりデバッグログを仕込んだりしているうちにCakePHPの中身が見えてきたのが良かったです。
最後に
今回のcontributeはちょっとしたBug Fixでしたが、今後も自社が使っているOSSが発展していくようコントリビュート頑張っていきます!
エンジニア募集中
BASE株式会社では、OSSにコントリビュートしていきたいエンジニアの方募集中です!