いつもはプロダクトとかOSSとかツールなど主に利用方法について記載していることが多いのですが、たまには毛色の違う話で初めてOSS(オープンソースソフトウェア)で、プルリクエストをマージしていただいた事についてお話ししたいと思います。
1. そもそもの発端 ~ 業務で利用していたOSS製品に興味を持ち始めて
Apache Guacamole(OSS)を社内で利用しておりました。社内のApcahce Guacamoleはデータベースへの接続を必要とする構成にしていてDBはMariaDBを使用し接続はSSL化して利用しましょうという話でまとまっていたのですが、いざ構成してみると残念ながらその時点ではMariaDB Connector/Jを使用したSSL接続はうまく機能しなかったというわけです。
そのまま放置するわけにもいかないため、SSL化を目指しソースコードの調査・改修を行い無事SSL接続もでき、問題は解決したのですが「せっかくならプロジェクトに貢献したい!」とおもい思い切ってApache Guacamoleプロジェクトへアクションをとったのが事の発端となります。
Apache Guacamole公式ページ
2. OSS/プルリクエスト
OSSに貢献することは、単にバグを修正したり新機能を追加したりするだけではなく、自分のアイデアやコードがプロジェクトの一部となり、世界中のユーザーに役立つ事となります。また、OSSに貢献することで、他の開発者と協力し合い、自分のスキルを磨くチャンスです!
そんな素敵なチャンスをくれるプルリクエスト。自分の修正や追加機能を他の開発者に提案し、その内容が承認されれば、公式のプロジェクトに統合されます。プルリクエストは、自分の変更をコードレビューの形で他の開発者に見ていただき、フィードバックをもらうプロセスでもあります。(滅茶苦茶緊張しますね。)
3. プルリクエストを送るまでのステップ
ここからは実際に私がApache Guacamoleで行ったステップについてとなります。GuacamoleはApache Software Foundation(ASF)プロジェクトの一つであり、ASF管理のプロジェクトはGithub上にIssuesタブがなく、Jiraで管理しています。よってまずはJiraのチケットを起票するところから始める形になります。
Jira(ジラ)はアトラシアンが開発したソフトウェア。主にバグトラッキングや課題管理、プロジェクト管理に用いられます。
登録は以下ページより実施可能です。
問題の報告と解決策の考案
Jiraに現状の不具合を報告。具体的には、上記で記載している問題(MariaDB Connector/Jを使用したGuacamoleとデータベース間のSSL接続不可)について記載しています。
jiraの画面
また、以下の内容もチケットに記載しています。
- 確認したところ、MariaDB Connector/Jのデフォルト設定ではuseSsl = falseになっており、これに起因した事象であること
- MySQL Connector/Jを使った場合、SSL接続はうまく機能している
- 上記内容からソースコードの改修が必要であること
- 修正後のコードで解消した旨の報告
Jiraチケットの詳細は以下から確認できます。
プルリクエストの提出
プルリクエストの前にプロジェクトページからForkし、修正をかけたものをプルリクエストします。
以下のページを参考にさせていただきました。
また、Jiraのチケット番号を基にプルリクエストを作成しています。プルリクエストを挙げた旨、Jiraチケットにも連携しています。
プルリクエストの詳細は下記から確認できます。
レビューとマージ
他の開発者からレビューが返ってきます。数回のやり取りを経て、最終的に修正が承認されプロジェクトにマージされました。(感無量です!)
4. 感想
非常に小さな修正でしたし、その割に何度もやり取りをすることになりました。またすべて英語でのやり取りであるため正直英語ダメダメな私でありますが、そこはGoogle翻訳さんをフル活用で何とかという具合だったため、時間的にはそれなりにかかった思います。
それでも大きな一歩につながった出来事であったことは疑いようがない事実でして、これ以降、他のプロジェクトにも僅かではありますが、プルリクエスト/マージをいただく機会を得ることができました。
また、プロジェクト公式ページに表示されるのは非常に光栄です!
これからも色々なプロジェクトにかかわっていきたいと思います。
5. その他
この記事が、同じようにOSSに挑戦しようとしている方々のお役に立てれば幸いです。