これで君もOSSコントリビューター!
はじめに
2024年の目標の一つに、OSSコントリビュートに挑戦してくことを決めました。
初めてのコントリビュート系の記事はすでに先人たちが書かれていたので本記事を書こうか迷ったのですが、誰かのきっかけになればいいと思い書くことにしました。
🍼👦🏻 > こんなんなんぼあってもいいですからね!
OSSコントリビュートを始めたい方の最初のステップとして参考になれば幸いです🙏
対象読者
- OSSコントリビュートをしてみたいが何から始めればいいかわからない方
コントリビュートするリポジトリ
このリポジトリは、初心者がオープンソースプロジェクトに貢献する方法を簡単に学ぶことを目的としています。
現時点(2024/01/07)で、Fork 数が70.3kと非常に人気なのが分かりますね。
各言語の README が用意されており、もちろん日本語🇯🇵での説明もあります。
では、実際に README の手順に沿ってやってみましょう。
1. リポジトリをフォークする
右上からForkを選択します。
右上の「Fork」を選択します
特に変更する点はないのでそのまま右下のCreate forkを選択します。
右下の「Create fork」を選択します
すると自分の GitHub アカウントに first-contributions リポジトリがフォークされました🎉
2. リポジトリをクローンする
中央の「Code」を選択してクローンの準備をします
ターミナルを開いてリポジトリをクローンします。
git clone <コピーしたリポジトリurl>
例:(SSHの場合)
git clone git@github.com:kzhgit/first-contributions.git
3. ブランチを作成する
クローンしてきたリポジトリに移動します。
cd first-contributions
git switch
コマンドを使用して作業用ブランチを作成します。
git switch -c <add-your-name>
例:
git switch -c add-kzhgit
今回の変更内容(コントリビュート内容)は自分の名前をリストに追加することなので、「add-your-name」のような形式になっています。
4. コードを変更してその変更をコミットする
Contributors.md
ファイルを開くと、これまでコントリビュートした人たちの GitHub アカウントがズラーっと並んでいます。
# Contributors
- [Satyajit Patra](https://github.com/SatyajitPatra06)
- [Shahmeer malik](https://github.com/shahmeermalik1)
- [Karuppaiah](https://github.com/akdinesh124)
...省略...
どこでも良いので自分の名前を追加してみましょう。
# Contributors
...省略...
+ - [Kazuho](https://github.com/kzhgit)
...省略...
追加できたら add して commit します。
git add Contributors.md
git commit -m "Add <あなたの名前> to Contributors list"
例:
git commit -m "Add Kazuho to Contributors list"
5. GitHub に変更を push する
git push
コマンドを使用して変更をリモートリポジトリに push します。
git push origin <ブランチ名>
例:
git push origin add-kzhgit
6. レビューのためにプルリクエストを送る
リポジトリを再度確認するとプルリクエストの作成ボタンが表示されるので選択します。
「Compare & pull request」を選択
特に追記することはないのでそのままCreate pull requestを選択します。
右下の「Create pull request」を選択
7. マージされる 🎉
数分待つと自動でマージされました!
これでOSSコントリビューターの第一歩を踏み出せましたね😎
おわりに
OSSコントリビュートを始めたい方の最初のステップとして、このようなリポジトリがあるのは非常にありがたいと思いました。
また、必ずしもコードを書くことがコントリビュートとは限らないとあるように、
以下の行動も立派なコントリビュートとされています。
- ドキュメントの作成や改善
- 翻訳
- コミュニティサポート(フォーラムやチャットでの質問対応)
- 他の人のコードをレビューする...etc
個人的にリポジトリのissue内の会話を見てエラー解決できたことも結構多いので、そういった会話に参加するだけで誰かの役に立てることもあるんだな〜なんて思いました。
さらにハードルを下げる(OSS ではないが...)
例えば、Zenn にはユーザが要望や質問などを投稿できるリポジトリがあります。
本記事を書いている時、過去に issue をあげたことがあるのを思い出しました。
このように、まずは普段使っているサービスやコミュニティにバグ報告や機能追加の提案をしてみることから始めても良いのではないでしょうか?
参考
Discussion