もちろんです。OSS開発は文章だけではイメージしにくいので、実際の画面や図を見ると理解が一気に進みます。
① GitHub全体のイメージ
この4つの画面がOSS開発では最もよく使われます。
- Repository:プロジェクト本体
- Issues:バグ報告や改善提案を書く場所
- Pull Request:修正を提案する場所
- Code Review:レビューコメントが付く画面
会社での開発も、この流れをそのまま使っていることが非常に多いです。
② OSSへの貢献の流れ
OSSを見つける
│
▼
READMEを読む
│
▼
問題を発見
│
├── バグなら Issue
│
└── 修正できるなら PR
│
▼
メンテナーがレビュー
│
▼
修正を反映(Merge)
│
▼
GitHubの実績になる
この流れは、企業の開発現場でもほぼ同じです。
③ Issue(問題報告)のイメージ
Issueは「プログラマー同士の相談掲示板」のようなものです。
例えば、
Windowsでインストールするとエラーになります。
と投稿すると、
開発者から
再現しました。
修正します。
という返事が来ます。
雑学ですが、有名なOSSでは1日に数百件のIssueが投稿されることもあります。
④ Pull Request(PR)のイメージ
PRは、
「私はこのように修正しました。取り込んでもらえませんか?」
という提案書です。
企業でも
開発者
│
▼
Pull Request作成
│
▼
レビュー
│
▼
OK
│
▼
Merge
という流れが毎日のように繰り返されています。
⑤ コードレビューのイメージ
レビューでは、例えば次のようなコメントが付きます。
この変数名をもう少し分かりやすくできますか?
この説明をREADMEにも追加してください。
レビューは「ダメ出し」ではなく、より良いコードをチームで作るための共同作業です。
⑥ GitHubの貢献履歴(Contribution Graph)
この緑色のマス目は「草(くさ)」と呼ばれています。
業界では、
「最近、草が生えてるね!」
というような言い方をすることがあります。
これはGitHubで活動していることを意味する俗称です。
ただし、採用では「草の量」よりも「どんな内容を貢献したか」のほうが重要です。
⑦ 初心者向けの「good first issue」
これらのラベルは初心者には特に重要です。
- 🟢 good first issue:初心者歓迎
- 🔵 help wanted:手伝ってほしい
- 🟡 documentation:ドキュメント修正
- 🟣 bug:バグ修正
最初の1件は、documentation と good first issue が両方付いているIssueを選ぶと、比較的取り組みやすいでしょう。
業界のちょっとした雑学
- LinuxやPythonなど世界的なOSSも、GitHub上で世界中の開発者がIssueやPRを通じて協力しながら発展しています。
- 大規模なOSSでは、コードを書く人だけでなく、ドキュメント担当、テスト担当、翻訳担当など、さまざまな役割の人が活躍しています。
- 「初めてのPR(First PR)」は多くのエンジニアにとって特別な経験で、SNSなどで「初めてマージされた!」と喜びを共有する投稿もよく見られます。
これらの画面を一度見ておくと、「Issueを立てる」「PRを送る」「レビューを受ける」という一連の流れが、実際の開発現場でもそのまま使われていることがイメージしやすくなるはずです。
「いきなりコードを書くなんて無理…」と思っています。 しかし、実際にはOSSへの最初の貢献の約7~8割はコードではありません。 例えば
- バグ報告(Issue)
- 誤字修正
- READMEの改善
- サンプルコードの追加
- 日本語訳
- 質問への回答
まず知っておきたいGitHubの世界
GitHubはよく「プログラマー版のSNS」と言われます。 例えば、 会社でいうと
社員
↓
GitHubユーザー
プロジェクト
│
├─ 管理者(Maintainer)
├─ コア開発者
├─ 一般開発者
└─ 初心者
Step1 まずOSSを探す
例えばPythonを勉強しているなら- Flask
- FastAPI
- Requests
- Spring Boot
- React
- Vue
good first issue
label:good first issue
Step2 READMEを読む
例えばREADMEにインストール
pip install abc
エラーになった
具体例① Issueを出す
例えば READMEではPython3.10対応
ModuleNotFoundError
タイトル
Installation fails on Python 3.12
Environment
- OS: Windows11
- Python: 3.12
Steps
1. Clone repository
2. pip install
Expected
Install succeeds.
Actual
ModuleNotFoundError
Step3 ドキュメントを読む
READMEには 例えばStart Server
python server.py
python app.py
具体例② PRを出す
READMEをpython server.py
python app.py
Fork
↓
修正
↓
Commit
↓
Pull Request
Fix incorrect startup command.
README says:
python server.py
Correct command is:
python app.py
Step4 レビューを受ける
すると管理者からThanks!
Could you also update the example below?
もちろんです。
実際の会話例
管理者Could you rename this variable?
Sure!
I've updated it.
Looks good.
Merged!
Merged
Step5 実績になる
GitHubにはPull Requests
Issues
Commits
Contributions
このPRを書きました。
初心者向けおすすめ貢献
難易度★☆☆- READMEの誤字
- 日本語修正
- リンク切れ
- サンプルコード修正
- バグ報告
- ドキュメント追加
- サンプル追加
- バグ修正
- 新機能追加
業界の裏話①
実は、 有名OSSでも、READMEの改善だけで何百件ものPRが存在します。 開発者はコードを書く時間を優先したいので、 「ドキュメントを整えてくれる人」は非常に歓迎されます。 そのため、「コードを書いていないから貢献ではない」ということはありません。業界の裏話②
海外では、 OSS活動を履歴書に書く文化があります。 企業によってはGitHubを見せてください。
学歴よりGitHub
業界の裏話③
有名OSSのメンテナーも、最初は「READMEの誤字修正」から始めたという話は珍しくありません。 これは「まず小さな貢献をして信頼を得る」というOSS文化を表しています。初心者が最初の1か月で目指せるロードマップ
- GitHubのアカウントを作る・プロフィールを整える。
good first issueラベルの付いたプロジェクトを探す。- READMEを読み、実際にインストールやサンプル実行を試す。
- 誤字・説明不足・手順違い・リンク切れなどを見つけたら、Issueを作成するか、READMEを修正してPRを送る。
- メンテナーからのレビューコメントに対応し、PRがマージされる流れを経験する。
0 件のコメント:
コメントを投稿