OSSに初めてPRを出してみたら、とても良かったはなし
この記事は、初めてIssueをあげてみたの続きです。
手短に語ると
- 前回記事の通り、ansible/AWXで簡単なissueをあげてみました
- コメント下さった方にメールしたら、熱い返事をいただき、PRする決心を固めました
- 検証しました
- PR出しました <-いまここ
- PRの行く末はどうなるかな?
PR出そうと思った大きなきっかけ
前回の記事には書いてなかったのですが、今回PRを出そうという気持ちになった大きなきっかけがありました。
ご本人にも了承をいただいたので、その話しもします。
issueに真っ先にコメントを下さった方が、私がよく読むBlogの筆者だったことは書きましたが、実はそのkurokoboさんにメールでもお礼を出してました。
「コメントありがとうございます!いつもBlog読んでます!」って、私ミーハー以外のなんでもないですよね。
そんなメールにも丁寧かつ熱い返事を下さいました。
- 原因を特定して、ワークアラウンドまで考えて、第三者にわかりやすく書かれてますね
- contributorが増えると嬉しいです。興味があればPR出してみませんか?
- マージされるかは分からないけど、PR出すことがいい体験になると思います!
面識はない方からこのようなお誘いをいただくOSS communityならではの刺激とか、こうやってcommunityを盛り上げようという姿勢に畏敬の念を抱いたりとか、色々感じるところがありまして、よしやろう!!という気持ちに至りました。
激励いただいたことには、大感謝です。
会社のEM室にも協力を仰ぎました
issueを出す際にもレビューをしてくださった横地さんは、社内でEngineering Mentor室(以下EM室)という部署を立ち上げて、エンジニアのアウトプットを応援することも一つのお仕事としてやってます。
EM室を横地さんが立ち上げた際の思いはこちらに綴られています。
個人としてではなくて、会社に部署を作ってエンジニアの援活動をしているということが、重要な意味を持っていると私は思ってます。
会社がこういう活動に肯定的だという表明でもあるし、協力を仰ぐ側としても業務上の実績になると思うと気軽に依頼できます(とはいえ実質ボランティアなのでは?という気も薄っすらしてますが)。
というわけで、EM室にも協力を仰ぎまして、技術面での補足やPRを初めて出すにあたっての注意点、その後の流れなどの手ほどきをしていただきました。
こちらも大感謝です。
検証をしました
そもそものissueの内容を軽く説明すると、pipをinstallするにあたって、RHEL8系ではdnf install python39-pip
、RHEL9系ではdnf install python3-pip
という差が有ります。
しかし、group_vars/all.ymlではpython39-pip
でハードコードされているため、RHEL9系ではコケてしまうというのがissueの内容でした。
なので、対処方法としてternary filterを使って、8系9系を分岐させようという方向で検証を始めました。
今回はRocky8、9とFedora28、34をそれぞれDockerで用意して、ホスト側からAnsibleで該当のPlaybookを流しました。
実は各OSで動かしてみても、結局Playbook自体は最後までは通りませんでしたが、自分の修正箇所のtaskは問題ないことは確認できました。
ここでやっきになって最後まで通してやろうとすると、いつまでもPR出せないという気がしてきて、ある程度のところで諦める選択をしたのは、自分の中での成長ポイントですね。
反省点は、最初から面倒がらずにDocker-composeでそれぞれのコンテナを管理すればよかったということ。
きちんとした人には信じられないかもしれませんが、つまりOSごとにほぼ同じDockerfileをこさえて、docker runで立てては潰してをやり続けたわけです。
最後の方は一々コンテナのIPアドレスを調べることにフラストレーションを抱えてました。
やっとPR出せました
そんなこんなで、検証も終わり、無事PR出せました。
issueを出してから結局2週間かかっちゃいました。
PR出すと別の意見も出てきまして、それも面白いところです。
当初はこれに似たことも考えていたので、まあみんな考えることは同じよなーと。
おわりに
PRは出すことで終わりではなく、mergeされることが一つのゴールです。
が、却下されたり、別の方法で解決されてもそんなに気にならないくらいに、過程で得るものが大きかったです。
技術的な面もさることながら、主にマインド的な部分ですね。
最初はフリーライドへの後ろめたさというネガティブ寄りな気持ちスタートでしたが、こうやってOSS貢献に関わっていくことの純粋な楽しさに触れられたことが大収穫でした。
ここにとどまらず、今後も「手元でちゃっと直しちゃえばそれでいいじゃない」なことを放置せず、contributeしていこうと思います。