概要
OSSにコントリビュートしたことがない私が、「自分に合ったサイズのIssue」を見つけ、人生初のコントリビュートをするまでの話
準備編
「OSSにコントリビュートしてみよう!」と思い立った私は、自分でもコントリビュートできそうなIssueを探すことにした。
しかし、膨大なIssueのなかから、そのようなIssueをどうやって見分ければいいのか。
初心者向けのIssue
OSS関連の記事をいくつか読んで分かったのは、初心者向けのIssueには、それとわかるラベルが貼られているというこだ。
good first issue(初めてに最適)、difficulty:easy(難易度:簡単)といったような。
このような「初心者向けのIssueに貼られるラベル」を調査し、Qiitaにまとめてみた。
【OSS貢献】初心者向けのGitHub Issueに貼られるラベルまとめ
いざ、Issueを探す
「初心者向けのIssueに貼られるラベル」が分かったので、次に、具体的なIssueを探すことにした。
Github Help Wantedは、プログラミング言語とラベルでIssueを絞り込むことができるサービスだ。
これを使って、「Python(馴染みのある言語)」「good first issue」でIssueを検索する。
さらにふるいにかける
結果、「good first issue」のラベルが貼られた大量のIssueを見つけることができた。
ここからさらに、以下のような基準でふるいをかける。
- タイトルや説明を理解できるか?
- Issueを解決できそうか?
Issueの内容は千差万別で、自分に合ったサイズ感のものを選別する必要があるからだ。
「自分に合ったサイズのIssue」を見つける
最終的に、私はこのIssueを選んだ。
Add requirements.txt · Issue #66 · UEWBot/dipvis
https://github.com/UEWBot/dipvis/issues/66
requirements.txtとは、Pythonのパッケージ管理システムpipの設定ファイルだ。
プロジェクトで使用するパッケージの名前とバージョンをrequirements.txtに書き、以下のコマンドを実行すると、一括でパッケージをインストールすることができる。
$ pip install -r requirements.txt
このプロジェクトにはまだrequirements.txtがないので、それを作成し追加することが、このIssueの内容だった。
やってみる
コメントで確認
作業に取り掛かるまえに、コメントで「このIssueを引き受けていい?」と確認した。
作業
OKが出たので、requirements.txtを作成・追加する。
(本Issue固有の処理なので、作業の詳細は省く)
Pull Request
作業が終わったのでPull Requestを出す。
Pull Requestの手順はこちらが詳しい
初めてのpull request @ GitHub
Merge
無事Mergeされ、私の初めてのコントリビュートが終わった。
まとめ
顔の見えない、機械翻訳なしには言葉も通じない、(おそらくは)海の向こうにいる開発者とのコラボレーションは、インターネットのダイナミクスが感じられる素晴らしい体験だった。
もし、あなたが技術的・心理的な壁に阻まれ、一歩目を踏みだせずにいるなら、私のような方法で「自分に合ったサイズのIssue」を探してみてはどうだろう。