蚊帳の中の日記

ゆるく生きてます

OSSの門を叩いた土曜日

OSS Gateという体験ワークショップに初参加したのだけど、楽しくて、あっという間に時間が過ぎてしまった

oss-gate.doorkeeper.jp

参加のきっかけ

以前からOSS開発に興味はあったのだけど、正直何から始めればいいのかわからなかった。
普段からOSS開発している人の話を聞いたりすると、「とりあえずプルリク投げてみればいいじゃん」と言われるのだけど、その「とりあえず」がわからない。何かお作法はあるのか?英語がいいのか日本語がいいのか?どういった観点で、どういった粒度のプルリクを送ればいいのか?...色々な疑問や不安はあった。
そんな時、今年のRubyKaigiに参加した際にOSS Gateのことが紹介されていて、興味を持った。同僚の先輩も参加経験があり、話を聞いてみると「めちゃくちゃいいイベントだよ」と教えてくれたので、思い切って申し込んでみたのがきっかけ。

OSS Gateの概要

参加者は、ビギナー、サポータ、サポートメンターの3種類に別れている。*1
文字通り、ビギナーは僕のような初心者で、初心者をサポータが助けてくれる。サポータが困ったら、より知識があるサポートメンターの人が助けてくれて、更に知見が広がるような仕組みになっている(この仕組みは非常に良かった)。

進め方としては、難易度などは関係なく、ビギナーが何かOSSを一つ決めて、それを題材にOSSを実際に動かしてみることから始まる。そして、何かフィードバックができる観点を見つけたら、実際にPRを送ってみるという感じ。フィードバックを送るまでの間に実際どういった作業をしたのかは、OSS Gateのリポジトリがあり、そこにissueを立てて作業内容を逐一記録していく。

僕の記録は👇

github.com

会の途中で、2回ほど振り返りをする時間があり、その時間は自分を担当してくれたサポータ以外のサポータからアドバイスを貰う時間もある。

PRは、何かOSSのバグを見つけてきてPR送るような難易度が高いことからやるわけではなく、READMEの説明が足りないとか、ドキュメントのリンクが切れているなどの比較的小さな問題に対してフィードバックするのでも全く構わない。

参加前は「何かバグを見つけてPRを送るくらいまでやるのかな?大丈夫かな?自分に出来るかな」と少し不安だったけど、意外と敷居が低くて取り組みやすいフィードバックから見つけていくことも出来るので、やりやすかった。

あと、色々なサポータのアドバイスや知見を共有してもらえる時間が用意されているのは、有意義で最高と思った

個人的な観点で、会に参加して良かったなと思った事

  • OSSにPRを投げる初歩を学べた。そして実際にPRも送れた!
  • 何かバグを見つけてPRを送らなきゃ!と身構えなくても、ドキュメントの間違いやちょっとしたtypo修正だけでも色々PRチャンスがあることに気づけた
  • OSSによって文化やフィードバックの仕方に違いはあるので、READMEや他の人のPR、issueを見ることも参考になることを知れた。
  • OSSの開発者に、自分の送ったPRの意図がわかる説明を吟味することが重要だということを知れた。*2
  • コミット、ブランチ名、PRの説明。これらに、より神経を使うことが必要であることを知れた。
  • 英語の文法を気にしすぎるよりも、まずはエイヤッ!とPR投げてみる気持ちが大事(少し拙い英語でも開発者は理解してくれる事が比較的多いらしく、理解できなければ聞いてくるはず)。

自分が題材に上げたのは GitHub - fluent/fluent-logger-ruby: A structured logger for Fluentd (Ruby) 。最近業務で触る機会があったので、せっかくだから取り上げてみた。そして、PRを投げることにも成功。マージしてもらえるかな。ドキドキ。

github.com

実際、OSSをイチから触り始めると、意外とREADMEに説明がなくて詰まったりすることがあり「〜の説明があったのほうがOSSの利用者に親切なのでは?」という場面が多かった。
僕の場合、「どうすればよりわかりやすいドキュメントになるか?」という議論がサポータさんとの間で白熱して、結果的にプログラムにフィードバックするのではなく、ドキュメントのちょっとした更新のPRになった。意外とこういった比較的敷居が低そうな観点のPRチャンスもあるのだなとということを知れたのでは、個人的にとても新鮮だった。

PRを投げる前には、該当のOSSに何か作法はないか(issueテンプレなどあるか?他の人はどうやってPRを送っているか?)を調べたりしたが、大きい規模のOSSなどはissueテンプレなどが事細かに用意されてる一方で、自分が選んだOSSは特に何もなくてPRにissueのリンクが雑に貼られているだけになっており、ものによって雰囲気がぜんぜん違うのは、比べて見ていて面白かった。

あとは英語力。「英語の文法を気にしすぎるよりも、まずはエイヤッ!とPR投げてみるのが大事だよ!」とアドバイスもらった。確かに!と思いつつ、もっと英語をスラスラ書けると更に楽しいだろうな〜。

OSSの門を潜った実感のある1日だった

実は、会に参加する前に題材に上げたOSSのバグを踏んでいたので、それを今日の課題にしようと思っていたのだけど、会の直前に修正PRが出てマージされてるのを見つけてしまい、「やばい、今日の題材、どうしよう、、、」と焦ったりもした。
しかし、実際は簡単なところからOSSに取り組む作業を教えてもらったので、とても有意義な時間を過ごせた。仮に何もOSSに取り組む当てがなくても、イチから教えてくれるので、そういった方でも参加する価値がある会だと思う。

非常に楽しかったです。ありがとうございました。もう少し個人でOSSに取り組んでみて、そのうちサポータとして再参加してみたいなと思っております。

*1:OSS Gateは、以前ビギナーで参加した人は、任意で次の回の時にサポータとして参加することが可能。つまり、ビギナーを経験して慣れきたら、サポータとして再参加し、また新たなビギナーを助け、OSSコミュニティの和を広げていく事ができるような仕組みになっている(良い仕組みだ)。ただ、このサポータも最初はどうやってビギナーを助ければいいのか困る時がある。この時にサポータを援助してくれるのがサポートメンターという役割の人。比較的普段からOSSに参加してる強い人達がいるみたい。

*2:例えば、実際の作業・期待した結果・実際の結果という観点で説明を書くと流れが理解しやすくわかりやすかったりする