このブログをご覧のみなさん、こんにちは。

私自身の体験を例に無理なく、短時間で OSS(Open Source Software) に貢献する方法やその取っ掛かりの見つけ方についてご紹介します。

対象者

  • OSS の開発に参加してみたいと思っている人
  • OSS への貢献って何をしたらよいのかわからない人
  • OSS への貢献に興味があるけど、貢献したいリポジトリが特にない人

私自身が OSS に貢献してよかったと思ったこと

  • 人の役に立てる
  • GitHub の Activity に反映される

貢献するリポジトリの選び方

観点: 自分の好みや得意なものから選ぶ

  • 実際に使っている OSS
  • 得意な言語の OSS

実際に使っている OSS や得意な言語の OSS といった自分の好みで選ぶのが真っ先に思いつくと思います。私なら Ruby on Rails などになるのですが、著名な OSS への貢献はとてもハードルが高いです。理由としては多くの人が見ているリポジトリはそれだけ軽微な修正が既に出し尽くされており、機能追加やバグ修正といった難易度の高いものが残っているからです。慣れていない状態でこのような著名なリポジトリを選択するのはあまりオススメしません。

観点: 貢献しやすいものから選ぶ

  • 以下の特徴を持つ OSS
    • よく更新されている (更新されていないリポジトリは Pull Request を送っても放置されやすい)
    • 小さめなもの (大規模 or 著名な OSS は上で書いた通り、軽微な修正が出し尽くされている可能性がある)
  • 以下から貢献する内容を選ぶ
    • ドキュメントが薄い or ない or 翻訳されていない or 誤記誤訳がある
    • バグなどの Issue が放置されている (コアデベロッパーは機能開発に集中する傾向がある)

貢献しやすいものから選べば貢献するまでのハードルは格段に下がります。私のオススメは「ドキュメントが薄い or ない or 翻訳されていない or 誤訳がある」への貢献です。バグなどの Issue カイゼンへ貢献する場合、

  1. バグを再現するテストコードを書く
  2. そのテストをパスするコードを書く

必要があります。一方で、ドキュメントの不備へ貢献する場合、

  1. ドキュメントを書く or ドキュメントを翻訳する or ドキュメントの誤記誤訳を修正する

という具合にステップが 1 つ減ります。加えて、バグのカイゼンへ貢献する場合は対象の開発言語に対してある程度の知識や環境整備が必要になりますが、ドキュメントの不備へ貢献する場合はドキュメントを読み書きできればよいのでさらにハードルが下がります。

Pull Request を送る

  • (あれば) Contribution Guide を読む
  • (あれば) Pull Request のフォーマットに従う
  • レビュアーも忙しいので急かさない (OSS だけやっている人は稀。相手も人間なので、判断に迷わないようにエビデンスをつけるなどするとよい)
  • 英語だけではなく emoji などで意図を補完

英語はコピペと Google や Bing などの翻訳サービスを使えば切り抜けられますが、細かい意図はなかなか伝わらないものです。 Pull Request の説明欄で説明したり、emoji を使うことで意図を補完するとよいでしょう。

とはいえ、慣れていない状態でいきなり英語でやりとりするのは気持ち的にハードルが高いと思います。そんな時は、日本語で Pull Request や Issue を出しても対応してくれる Microsoft Docs から貢献をし始めてみるのもよいと思います。

実際に、Microsoft Docs に対して 1 分で簡単に貢献できるので、その方法をご紹介します。

1 分で OSS に貢献する方法

  1. Microsoft Docs にアクセスし、好きな技術をクリックします。ここでは [Azure] をクリックします。
  2. 続いて見たいドキュメントの技術をクリックします。ここでは[サーバーレスな Functions]をクリックします。
  3. [Azure Functions のドキュメント]のページが開くので、ページ内で誤記誤訳を見つけたと仮定します。つまり、ここからが貢献の計測スタートです。
  4. [編集] をクリックします (5 秒)
  5. GitHub が開くので、鉛筆マークをクリックします (5 秒)
  6. ファイルを編集できるようになるので、誤記誤訳部分を修正します (20 秒)
  7. [Propose file change]の下に Fix typo または typo修正 など修正内容が分かるコメントを入力し、[Propose file change]ボタンをクリックします (10 秒)
  8. [Comparing changes]というページが開き、修正差分がページ下部に表示されるので、修正差分が自分の意図通りであることを確認後、[Create pull request]ボタンをクリックします (10 秒)
  9. Pull Request のタイトル(コミットコメントがデフォルトで入力されます)と説明を記載できるようになるので、説明を記載後、[Create pull request]ボタンをクリックします (10 秒)

以上で 1 分で OSS に貢献することができます。とても簡単なので、まだ OSS に貢献した経験がない人は気軽にチャレンジしてみてください。また、既に OSS に貢献したことのある方も簡単に Pull Request を出せるので、誤記誤訳を見つけたら Pull Request を出してみてはいかがでしょうか。

実際に 1 分で OSS に貢献できるか試しました

タイトル詐欺の可能性を考慮し、1 分でできるか実際に上記手順で試しました。

  1. Microsoft Docs にアクセスし、好きな技術をクリックします。ここでは [Azure] をクリックします。

    Azure をクリック

  2. 続いて見たいドキュメントの技術をクリックします。ここでは [サーバーレスな Functions] をクリックします。

    サーバーレスな Functions をクリック

  3. [Azure Functions のドキュメント] のページが開くので、誤記のあるページである [Functions 2.x] をクリックします。

    Functions 2.x をクリック

  4. [Functions 2.x] のページが開くので、誤記を確認します。Markdown 記法でイタリックにしようとしてうまくいっていないものです。

    Functions 2.x の誤記を確認

    ここからが貢献の計測スタートです。
  5. [編集] をクリックします (実計測 2 秒)

    編集をクリック

  6. GitHub が開くので、鉛筆マークをクリックします (実計測 2 秒)

    鉛筆マークをクリック

  7. ファイルを編集できるようになるので、誤記誤訳部分を修正します (実計測 5 秒)

    誤記部分を確認

  8. [Propose file change] の下に Fix typo または typo修正 など修正内容が分かるコメントを入力し、[Propose file change]ボタンをクリックします (実計測 10 秒)

    誤記部分を修正 & コミットコメントを入力し、Propose file change クリック

  9. [Comparing changes] というページが開き、修正差分がページ下部に表示されるので、修正差分が自分の意図通りであることを確認後、[Create pull request] ボタンをクリックします (実計測 5 秒)

    修正差分確認後、Create pull request クリック

  10. Pull Request のタイトル(コミットコメントがデフォルトで入力されます)と説明を記載できるようになるので、説明を記載後、[Create pull request] ボタンをクリックします (実計測 10 秒)

    エヴィデンスを添付後、Create pull request クリック

  11. Pull Request 送信完了 (トータル 34秒)

    Pull Request 送信完了

スクリーン・ショットを撮りながらでは当然ながら実際にかかった時間がわからないので、一旦スクリーン・ショットを撮ってから計測しました。トータル 34秒でしたが、私は普段から OSS に Pull Request を出しているため、慣れもあるかと思います。ただ初めての人でも 1 分程度で出せると思いますので、誤記や誤訳を見つけた際は気軽にチャレンジしてみてください。