BASEプロダクトチームブログ

ネットショップ作成サービス「BASE ( https://thebase.in )」、ショッピングアプリ「BASE ( https://thebase.in/sp )」のプロダクトチームによるブログです。

入社半年でCakePHP本体にcontributeした話

こんにちは、BASE株式会社 BASE Product div サーバーサイドエンジニアの東口です。主にサービスの決済部分とPHP・CakePHPのバージョンアップをしています。

CakePHP2.10.9のリリースに対して、Koji TanakaさんとKazuki Higashiguchiがcontributeいたしました。

Release 2.10.9 · cakephp/cakephp · GitHub

f:id:khigashigashi:20180326093526p:plain

自分自身は、BASEに入社してからCakePHPを仕事で使い始めて半年、初のコントリビュートでした。備忘録としてコントリビュートに至った経緯を残していきます。

何をしたのか

Release 2.10.9 · cakephp/cakephp · GitHubを引用すると下記のBugFixを行いました。

CakeTestCase::getMockForModel() now correctly handles secondary connections.

github.com

だいたいの流れ

きっかけは、テストコードを書いていた際になぜか意図しない挙動をすることに同僚が出くわしたことでした。 実際に起きていたことはIssueに書いた内容ですが、テストケース内で、メインではないDBに接続するModelをmockするメソッドを使用した際に下記のエラーが発生していました。

MissingConnectionException: Database connection "Mysql" is missing, or could not be created.

Issueを出すところまで、既にプルリクを何度も送っている同僚のKoji Tanakaさんにざっくり教えてもらいながらやりました。おおまかな流れは以下です。

  • 調査
  • いけそうな修正方針決める
  • Issueを出す
  • 機能修正する
  • テストを修正する
  • Pull Requestを出す
  • マージしてもらう

今回は、既にテストコードが書いてあり通っていたのでなぜ通っているのかという原因調査が少し大変でした。

マージされた

今回のバグの原因調査にあたり、中のコード読んだりデバッグログを仕込んだりしているうちにCakePHPの中身が見えてきたのが良かったです。

最後に

今回のcontributeはちょっとしたBug Fixでしたが、今後も自社が使っているOSSが発展していくようコントリビュート頑張っていきます!

エンジニア募集中

BASE株式会社では、OSSにコントリビュートしていきたいエンジニアの方募集中です!

jobs.binc.jp