OSSをやって得たもの、失ったもの

どうもnasaです。

タイトルに意味はありません。得たもの失ったものって書いておけばエモいかな。と思って適当につけました。何も失ってません。

「いや、ヤツはとんでもないものを盗んでいきました。あなたの心です」(銭形ボイス)

Hacktober FESTというOSSのお祭りが10月31日で終わったので、なぜ自分がOSSをやっているのか、今後やっていって何を得られるのか、良い節目なので考えてみようと思います。

Hacktober振り返ってみる

まず、昨日まで開催されていたHacktober festの振り返り。

これは10月中に任意のRepositoryにPRを4個投げるとTシャツがもらえるというもの。詳細は公式サイトを見てください。

https://hacktoberfest.digitalocean.com/

今年のHacktoberの結果はこんな感じ。4個プラス32個? 総合32個?どっちかわ分かりませんが、まあ割とがんばれたのかな、と思います。

f:id:htilcs1115:20191101215121p:plain

ですが、これには自分のリポジトリ、自分のOrganizationへのPRも含めてしまっているので、外部リポジトリに投げたのは21個程です。

最初は1日1個出すぞ!くらいの勢いでいたんですが、望み叶わず、、、、

10月に取り組んだプロジェクトはほぼこれです。 GitHub - async-rs/async-std: Async version of the Rust standard library

OSSで得たもの

GitHubのフォロワーです!

嘘です。

OSSにも、ドキュメントの翻訳やら、issue起票、バグ修正、new featureと色々とあると思いますが、ココはコードを投げるバグ修正やnew featureをやって得たものを書いていきます。

プロジェクトにもよると思いますが、PRを出してマージまで持っていくためには、

  • 周辺コードを読んで実装できるか(PRを出した時点でクリアできてそうですが)
  • そのコードに対するテストは書かれているか
  • ドキュメントはあるか
  • きちんとしたコードになっているか(クソコードはマージされないはず)

というようなことが要求されると思います。

これらはコーダーとしてやっていくなら要求されることかと思いますが、個人的にコードを書いている人は体験することは少ないと思います。それを体験する機会を得られる、しかもインターンなどの期間が決まっているものではない。というのがボクにとってのOSSの魅力ですね。

めっちゃ丁寧にレビューしてくれますしね。

OSS活動のススメ

じゃあ、どうやって初めたら良いのかなー?みたいなところも考えていこうと思います。

このスライドが色々と参考になるので、この記事を読むよりはこっちを読んだほうがおすすめですけどね。 Oss貢献超入門

まずはプロジェクト選びだと思います。 あー、ココ微妙だな。とか、この機能あったらなーと思いながら使っているライブラリなどがあればそれが良いと思います!フォークして開発するだけ!とは言え、コード量が多すぎたり、割と難しい機能だと難しいと思うので、チャットルームや昨日に関連するissueに質問コメントをするのが良いと思います。(対応するissueが無ければ立てて、議論を始めるのが良いと思います。)

取り敢えずPR投げてみたいけど、どのプロジェクトが良いんや、、、っていう人は、触ってる言語の新しめのいい感じのライブラリをやってみることをオススメします。

やるプロジェクトを決めたら取り敢えずそのリポジトリwatchしましょう。新しいIssueやPRを眺めるために。 いま、どんなのが必要とされていて、そんなバグが有るかが分かります。

これやるぞ!って決めたらフォークして、CONTRIBUTE.mdを読んでルールを読んでおきましょう。 あとは、PRを出してみてレビューを貰うだけですね。PR出してしまえば意外とすんなりマージまで行くと思います。(プロジェクトによってピンきりかもしれませんが)

後日談というか雑談

雑に書いたんですが、「取り敢えず読めるしリリースしようぜ!」の精神でpostします。 これ本当はTresureアドベントカレンダーの最初を書く予定だったんですが、12月1日を11月1日を勘違いしていて、うーん。せっかく出し今日書くかとなり、書きました。これで12月1日の分のネタが一つ消えました、、、ひーん。。。。

Treasure Advent Calendar 2019 - Adventar