Edited at

「自分に合ったサイズのIssue」を見つけたら、OSS初心者でもコントリビュートできた


概要

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」を探してみてはどうだろう。