TL;DR
TerraformでAWS環境のプロビジョニングをしていた時に遭遇したちょっとした不具合を改善してContributeした話です!
〜序章〜
ある日いつものようにAWS IAMのリソースをterraformでプロビジョニングしていたところ変更していないはずのIAM Groupのリソースが毎回変更されてしまうことに気付きました。毎回変更していないはずのリソースが変更されてしまうというもどかしさを抱えながら悶々とした毎日を過ごしていました。
ある日同僚のエンジニアとOSSへのコントリビュートを目標とした会を結成し何かいい題材はないかと考えていたところ前述のことがパッと思い浮かびすぐさま修正に取り掛かりました。
Issueの発見
まずは自分と同じような悩みを抱えている人はいないかIssueを眺めていると...見つけました!
https://github.com/hashicorp/terraform-provider-aws/issues/22274
しかし長い間そのIssueは放置されたまま...どこを修正して行けば良いか実際にコードを見ていくことにしました。
すると簡単な変更で問題が解決できそうなことが分かってきました。
修正
実際の修正コミットはこちらです。
https://github.com/hashicorp/terraform-provider-aws/pull/23060/commits/360b394e774dfe45d9f9c44e769188a7fd86c0bd#diff-c5aeb20b1fe251f0cc7b75a1f9b30d2e25813e7f05c9e24c96d1df19ed57c0e3
やっていることは単純でterraformで記述したAssumeRolePolicyDocumentと実際のAssumeRolePolicyDocumentが同等であるかのチェックを入れるというものです。
〜Pull RequestからCloseへ〜
さて、コミットとプッシュが完了し単体テストもパスしました!あとはPull RequestをOpenしてメンテナの方に見てもらうだけです!
しかし、メンテナの方も日々大量のPull Requestに対応しているようでなかなかCloseされませんでした。
PRのCloseを心待ちにする人の声
そしてPull Request Openから約4ヶ月後、ついにPull Requestがマージされました!
感想
小さな改善でしたが自分のコミットがterraform-provider-awsに反映されているというのは中々感動モノでした。
初めてのOSSコントリビュートということでどうやっていけば良いかはじめは手探りでしたがterraform-provider-awsは毎日大量のContributeが行われておりしかもContiributeのドキュメントも手厚く用意されていたのでそれを参考にしてすんなりと修正を完遂することができました。
日々お世話になっているOSSへの恩返しにもなると思うのでぜひOSSへのContribute挑戦してみてはいかがでしょうか!