Help us understand the problem. What is going on with this article?

PHP開発環境のOSS(Laradock)に初めてのプルリクを出してマージされた話

こんにちは。yamotukiです。普段はM&Aクラウドという八丁堀のベンチャー企業でエンジニアやってます。
この記事は PHP Advent Calendar 2019 の九日目の記事です。

概要

  • OSSへのコミットをいつかやりたいと思っていた
  • いつも使っていたLaradockというPHP開発環境作成するOSSで困ったことがあった
  • プルリクエスト(以下PRと記述)してみた https://github.com/laradock/laradock/pull/2342
  • 初めてマージされた喜び

出したPRも大したことないですが、私個人の心理的には大きな一歩だったので、このアドベントカレンダーのお題に乗って記録しておきたいと思います。

Laradock とは

公式: https://laradock.io/

Laradock is a full PHP development environment based on Docker.

という公式の説明を引用しますが、PHP開発環境だったら大体なんでも立ち上がる便利ツールだと解釈してます。
一部では批判(※1)もありますが、お手軽に種々のPHP環境の開発環境を立ち上げたり、Dockerファイルを書くのに参考にするにはやっぱり便利なOSSです。

※1 色々入りすぎて初心者にはトラブルシューティングしずらいとか、立ち上げが遅いとか

新規プロダクトを立ち上げて1年半ほどの弊社でも、直近では自前のDockerファイルを書く方式に移行しましたが、1年ちょっとくらいお世話になりました。

OSSにコミットしたいなあ

昔から「OSSにコミットしたい」という気持ちがありました。
なぜか?というのを改めて考えてみました。

  • 世界のエンジニアに納得してもらってコードが取り込まれることは一人前のエンジニアの証だというイメージを勝手に持っており、そこに近づきたい
  • 普段業務を進めている上でお世話になっているコードに恩返しをしたい(というか無料で使わせてもらっているので当たり前では、とも思う)
  • 日々勉強している自分の英語は使えるものになってきているのだろうかというのを試したい

プロファイラツールの tideways(xhprof) がうまく動かない

それできっかけをぼんやり探していました。
tidewaysというPHPのプロファイラ(コードの性能測定)ツールを使ってみることにしたのですが、導入に多少ハマりました。
tidewaysは昔PHP5系の時に有名だったが開発が止まってしまったxhprofのフォークされてPHP7対応されたものです。

tidewaysレポジトリ: https://github.com/tideways/php-xhprof-extension

何が問題だったか

Laradock ではフラグ立てるだけで割とすぐにインストール出来ることはわかったのですが、プロファイラ開始・終了の関数がうまく呼び出せない問題がありました。

具体的には、公式のREADMEに書いてあるtideways_xhprof_enable()だと動かないけど tideways_enable()にすると動くというところ。

自分なら直せる?

ぼちぼち調べてみるとインストールされるtidewaysのバージョンの問題であることがわかりました。(v4系とv5系の挙動の違い)
試行錯誤の記録はこちら: https://qiita.com/yamotuki/items/d8112cc7dec2c04130b4

問題の理由も明快で、直すのもそこまで難しくなさそうでした。心理ハードルを超えるだけ。
というわけで初めてのOSSへのPRをチャレンジしてみることにしました。

PRテンプレートの遊び心を感じる

実際にPRを作って出してみると、OSSってこういう感じなのか、というのが面白かったので共有しておきます。

以下はPRのテンプレートに書いてあるチェックリストです。

image.png

どのガイドを読めばいいか明快に書いていて、ドキュメントもアップデートしてねと忘れそうなのを書いてある。

三つ目のチェックボックスがとてもいいですね。

マージされた喜び

というわけでPR出していたのですが、2週間ほど放置されていました。
Laradock はある程度枯れた技術になりつつあり、コミュニティはあんまり活発じゃないみたいですね。
インフラ系なので動作確認が多少手間になるので確認が面倒というのもありそう。
(別件で Laravel/framework に出していたPRは数分でコメントがついて、PRがイケてなかったので数日でクローズされました。勢いの差を感じる)

結果として、しばらく放っておいたら特に議論もなくマージされて、自分のコードが世にでることになりました。
喜びを感じました。

次もやりたい

Laravel やその関連ライブラリのレポジトリにコミットしたい!
一番使っているフレームワークでお世話になっていますし、コミュニティは活発。
また、自分がPHPを実用レベルで読み書きできるようになってきたという証になると思ってます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした