OSS Gateワークショップ参加レポート:初めてのOSS貢献でPRがマージされるまで
はじめに
先日、OSS-Gateというコミュニティによるワークショップが、弊社の会議室で開催されました。
後述しますが、趣旨としては「初心者がOSSへの初コントリビュートをする」というワークショップです。
個人的に興味のある内容であったため、実際に参加してきました!本記事はそのレポートです。
OSS-Gate ワークショップとは
OSS-Gateとは
以下を目的とするコミュニティです。(公式ページから引用)
「OSS Gate」は、OSS開発に参加する「入り口」を提供する取り組みです。 OSS開発に未参加の人を参加する人へ、少し参加したことがある人を継続的に参加する人へ。そうやってOSS開発に参加する人を継続的に増やしていく。それが「OSS Gate」の目的です。
ワークショップの概要
OSS-Gateが開催するワークショップはこんな形式です。
基本情報
- 開催頻度
- 2ヶ月に一回
- 場所
- オンライン/オフラインが大体交互にある
- オフラインの開催場所はまちまち
- 経験者はサポータ、初心者はビギナーとして参加
- 初心者がOSSへのコントリビュートをするのをサポータが手伝ってくれる
やること
イベントページの引用ですがこんな感じ
本ワークショップの目的は、「OSS開発に参加する最初の一歩を支援すること」です。実際にやることは「ビギナー」と「サポーター」で相談して決めますが、通常は次の内容を行います。
扱うOSSを「ビギナー」と「サポーター」で相談して決める
公式ドキュメント通りにそのOSSを動かす
プロジェクトにフィードバックする
フィードバックの例:発見したインストールや動作時の問題に関して、GitHubのIssueやpull requestを作成する
発見した公式ドキュメントの不備に関して、GitHubのIssueやpull requestを作成する
OSS紹介
コントリビュートするOSSは本当に自由です!
私はvscode-neovimという、VSCodeの拡張機能を選びました。
ざっくりした紹介ですが、vscodeのVim拡張の一つです。
すごいところは、Vimキーバインドをエミュレートするのではなくて、本当のneovimが動作するところで、プラグインなども動きます。
実際の作業内容
1. プロジェクト選定
まずはコントリビュートするOSSプロジェクトの選定が始まります。
ポイントはこんな感じでした
- 普段使ってるOSSから選ぶ
- 勝手が分かってるのでスムーズに進められるし、貢献できた時の嬉しさも大きいです
- 小規模なプロジェクトや新しめのプロジェクトが狙い目
- 人気言語そのもの!とかだと成熟しすぎていてフィードバックするポイントを見つけづらいそうです
2. OSSを実際に使ってみる
普段使っているものであっても、あらためて再インストールしてドキュメント通り動かしてみます。
この「ドキュメント通り」というのがミソで、Qiitaなどの技術記事をみてはいけません。
というのはドキュメントに不備があり、セットアップや実行が失敗した場合、それがフィードバックできるからです。
ドキュメントが古い手順を書いていて、ググって出てきたブログの通り試したら成功した経験などあるかたは多いのではないでしょうか。
実はそれこそがコントリビュートのチャンスで、ドキュメントの最新化は開発者の手が回りづらく、歓迎されやすいらしいです。
3. フィードバック内容を整理して、issue/PRを作る
ここに関してもポイントがいくつかあります。
まずは、レポジトリにコントリビュート手順の指示がないか確認します。CONTRIBUTING.md
という名前のファイル名であることが多いようです。
他のポイントとしては、実行環境,やったとこ/やってないことなどを明確にするなどがありますが。きっと皆さんが普段業務で意識していることと同じなので省略します。
詳しくは↓の45pあたりからあるのでみてください。
https://slide.rabbit-shocker.org/authors/oss-gate/workshop-tutorial-online/
成果と感想
今回は、私はドキュメントに関する軽微な修正を送り、無事マージされました!
ドキュメント内の遷移用リンクにタイポがあったというだけなのですが、毎日使っているツールに貢献できたと思うとめちゃくちゃ嬉しいです。
まとめ
OSSへのコントリビュートに興味があるものの、二の足を踏み続けて何年も経っていた私にとって非常にありがたいワークショップでした。
コントリビュートというと、実装をゴリゴリ凄い人たちにしかできないような印象がありましたが、ドキュメントの修正ならユーザ目線でも十分可能で、需要もあるということを知ることができました。
実装でのコントリビュートにも興味はありますが、そっちはある程度時間や覚悟が必要かなと思っています、ひとまずは今回学んだようにドキュメントの不備を見つけた際に、ググって解決するだけでなく、公式へのフィードバックをする。というのを習慣づけたいと思います!
最後に全体を通して思ったことですが、このOSS-Gateというコミュニティの活動自体が、非常に志の高い方々によって成り立っており、私は強い刺激を受けました。
ITが仕事の道具みたいになってしまった方は、今一度楽しい気持ちを思い出せるかもしれません!