未熟学生エンジニアのブログ

プログラミング・Web開発をする大学院生のブログ

初めてのOSSへのプルリクエスト(ドキュメント編)

初めてのOSSへのプルリクエスト(ドキュメント編)

今回プルリクを送ったリポジトリ

github.com

Djangoで作られたECサイトのプロジェクトです。 このサイトで実際に運用されています。http://getsaleor.com

なぜこのリポジトリを選んだか

単純に自分が結構参考にしていたリポジトリだったからです。 現状バイト等でも綺麗なコードを読む機会があまりなかったので、大きめのOSSのコードリーディングをやってみたいと思ったのが始まりです。

なぜプルリクを送ろうと思ったか

どうせならコードリーディングだけじゃなくてコントリビューションもやりたいと思い、何気なくcontribution guideを読んでいたところ、typoに気づきました。 typoに気づいたら、これはコントリビューションチャンス!ということでプルリクを送ろうと決めました。

プルリクを送ると決めてから調べたこと

コントリビューションガイド

READMEから見つけた。以下のことについて注意して読んだ。

  • issueを立てるべきか
    • issue文のテンプレはあるか?
  • pull request文のテンプレはあるか?
  • テストについて

読んだ感じだと、どうやら特にやれることはなさそうだった。(今回はドキュメントのfixなので特にテストする必要もなく、CIに任せることにした)

マージされた似たようなプルリクを調べる

Githubの左上の検索ボックスから、「Fix typo」と検索

以下のような似たようなプルリクが見つかった。

https://github.com/mirumee/saleor/pull/3100

forkする

今回、実は先にリポジトリをクローンしてpushしてみたが、pushがリジェクトされてしまった。 ブランチ名を見ると、tetsufe:fix-type のようにコロンで区切られていた。 forkすると、こんな感じで表示されるらしかった。 そういうわけでforkしてからプルリクを送ることにした。

forkからpull requestの送り方は以下を参考にした。

qiita.com

ブランチ名

マージされた似たようなプルリクを調べる https://github.com/mirumee/saleor/pull/3100

  • タイトル
  • issueを立てるべきかどうか

修正する

ドキュメントを修正します。今回はPotsgreSQLと書かれていたのをPostgreSQLに直しました。これだけです。笑

一応、プロジェクト全体を検索し、ここしかその間違いがないことも確認しました。

コミットメッセージ

コミットメッセージは特殊である必要はないらしかったので適当に"Fix typo in docs about search" としました。英弱ですね。

プルリクの作成

pull requestをリンクから作成するとテンプレが自動生成される。しかもfork元に自動的にプルリクが作成される楽々仕様でした

$ git push
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 436 bytes | 436.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
remote: 
remote: Create a pull request for 'fix-typo' on GitHub by visiting:
remote:      https://github.com/TetsuFe/saleor/pull/new/fix-typo
remote: 
To github.com:TetsuFe/saleor.git
 * [new branch]          fix-typo -> fix-typo

この https://github.com/TetsuFe/saleor/pull/new/fix-typo リンクから行くと、勝手にプルリクのテンプレが入力された状態でフォームが出てきました。

f:id:swiftfe:20190210202158p:plain

プルリクのタイトル

コミットメッセージと同じでもOKらしかったので、そうしました。

プルリクの本文

I want to merge this change because... のプルリクのテンプレに従って、

I want to merge this change because potsgreSQL is wrong, postgreSQL is correct.

と書いた。意味はわかるはず。

完成!

github.com

プルリクを作成すると、CIが回り、そして終わります。この辺はさすが質の良いオープンソースプロジェクト感があります!

f:id:swiftfe:20190210202310p:plain

迷ったところ

pull requestのテンプレが見つからない(あとでわかったが、forkしてpushした時にコンソールに出てくるリンクからプルリクを作ろうとすると自動的にテンプレ文が入力された状態で始まる仕様らしかった。)

後日、マージされました!

github.com

メンテナの方からも感謝の言葉をいただき、割とテンション上がりました。笑

今度はコードでコントリビュートしたいですね!

皆さんも簡単なところからOSSへのプルリクエストを送ってみてはいかがでしょうか?