初めて GitHub でプルリクを出してマージしてもらった
この前、初めて GitHub でよその人が作っているオープンソースライブラリにプルリクを出して、めでたくマージしてもらった。
ngx-bootstrap
プルリクを出したのは、ngx-bootstrap というライブラリ。コレは Angular 上で Bootstrap のプラグイン部分を動作させるためのモノで、他にこれ以上機能が揃っている Angular + Bootstrap なライブラリも見当たらないので、実質的にデファクトなヤツ。
とはいってもまだまだ機能は出揃っておらず、不完全なところも散見されるライブラリだ。開発中、って感じで良い。
自分が作ったモノ
そんなワケで今回僕がプルリクを出したのは、カレンダーから日付を選択入力できる「DatePicker」の日本語対応部分の一処理だ。
入力値をパースして Date オブジェクトに直す時に、「年月日」などの表記をスラッシュ記号に直したりして、パース可能にするための関数 #preparse()
を作った。
別の言語ではこの #preparse()
処理が実装されているモノもあったので、そのコードを参考に、日本語環境で入力されうる漢字などを置換しておく処理を書いた。
プルリクの様子
以下がそのプルリク。
ロクにコントリビューションのルールも読まずに preparse()
メソッドだけ追加したコードをプルリクに出していて、オーナーの Valorkin 氏から「イイネ!でもテスト書いてくれる?」とレスされている。
- Add Japanese bs-moment #prepare() method by Neos21GitHub · Pull Request #3110 · valor-software/ngx-bootstrap · GitHub … 最初にプルリクに出したコード。ただの正規表現による最低限の置換だけ。
ただ、同時に貼られていた URL が moment.js のテストで、「ワイが作った関数に合致するテストコードないンゴ…」な状態だったので、既に作られていた英語版のテストコードを流用して日本語版のテストコードを書いた。その上でコードカバレッジが不足しているところはテストを追加した。
- Add Japanese bs-moment #prepare() method by Neos21GitHub · Pull Request #3110 · valor-software/ngx-bootstrap · GitHub … テストコードを書いた。
そしたら fdescribe()
と書いたままコミットしてしまうという凡ミスをやらかしていたのですぐに修正。
とりあえず直したら CI のテストがクリアできて、YevheniiaMazur 氏から「良いんじゃない?」とお墨付きをもらえた。
コレを確認した Valorkin 氏によって、めでたく development
ブランチにマージしていただいた、というワケ。
初めてマージされたので、「人生で初めてプルリクをマージしてもらえて嬉しいです」と伝えたら、
Hohoho, my congratulations! Welcome to open source :)
「おめでとう。オープンソースにようこそ」
と言ってもらえた。
小さな「貢献できた」感
ネット上の小さなライブラリの、すごく小さな一機能だけど、自分がやったら喜ばれた、自分がやったことを受け入れてもらえた、という喜びは案外大きかった。
コレ自体で何かお金になるワケでもないし、正直僕自身はこの DatePicker という機能を全然使ってはいないのだが、何かちょっとでも役に立ったのなら良いのかなぁ、とか思った。
…
…バグが出たらゴメンナサイ…w