LoginSignup
34
17

More than 1 year has passed since last update.

OSSに貢献したいのに、まだ貢献していないあなたへ ( GitHubでのPullRequest作成のススメ )

Last updated at Posted at 2018-07-29

この記事で言いたいこと

  • 「OSSへの貢献」って敷居のイメージが高すぎる気がする。
    • 実際はもっと「皆でわいわい・がやがやとやる」イメージ。
    • OSSは遊び場。PullRequestはコミュニケーション手段。
  • ボーイスカウト精神から始めよう。
    • PullRequest / Issue を出さないのは悪だ (出すのが悪ではない)
  • 「自分のニーズ」を軸にしよう。
    • 「自分が分かりづらい」READMEを訂正する。
    • 「自分が欲しい」機能のIssueを立てる。
    • 逆に「自分が不都合を感じていない」「欲望を感じていない」事柄に対してPullRequestを出そうとしても、モチベーションが持てないんじゃないかと思う。

CASE. ライブラリの中に隠し要素を見つけた時

へぇ! こんな環境変数使えるんだ。

image.png

きっと隠しコマンド”みたいな”ものだな。
だって README に書いてないし。

(まあ、書いておいても良いと思うんだけど)

‥で終わらせるなよ!

Pull Request 出そうぜ。
README のテキストを1行追加するだけ。

image.png

レビューを受ける

表現だけ訂正したら良さそう。

image.png

マージ・反映される

image.png

すぐにREADMEにも反映される。
こうして隠し要素は公式要素になったのだった。

CASE. ニドランの謎

ダミーデータを生成するライブラリに「ポケモンの名前」という種類のものがあり、そこに二匹のニドランが登録されていた。

「ニドランはオスメスの二匹がいる」というポケモン基本知識を持たずに、片方を削ったPullRequestを出したら、コメントがついた。

「男女を表すマークを付けたら良いんじゃない?」

だがこの時はコメントの意味を取り違えて、すぐに自分でPullRequestをCloseしてしまっていた。

(というか、今振り返っていてコメントの意味に気付いた)

image.png

Faker::Pokemon two Nidorans by YumaInaura · Pull Request #833 · stympy/faker

CASE. ドキュメントの謎

ドキュメントを眺めてて、謎を感じる。

image.png

何度読んでもつじつまが合わない。
やがて「ドキュメントの不備」なんじゃないかと理解し始める。

まあ、人が作るものだし、仕方ないんだろうな。

‥じゃないんだよ! PR 出そうぜ!

そこで立ち去ってる場合じゃない。なめんなよ。

最近じゃGitHubで管理してるドキュメントも多い。
PR作ってドキュメントを直そう。

image.png

PR出してみた例

たまたまApproveが付いたが、これは結果論なのだ。

PR提出は「意見」であり「クレーム」でもあり「メッセージ」でもある。
「問いかけ」であり「コミニュケーション」なのだ。

image.png

CASE. テスト環境が壊れていた

PullRequestを出す前にテストを走らせたら、何やら大量に黄色い文字が出る。

まさかテスト環境が壊れているとは思わず「まあ、こんなものかなぁ」と最初は思っていたが、なんだかおかしい。

image.png

いろいろと調べているうちに、環境依存でテストが落ちてしまうことが分かった。(GitHubのCIも落ちていた)

以下略

見て見ぬふりせずプルリクチャンス。

image.png

テストが壊れている、そんなこともある。

必ずしも「正しく動く環境」を誰かが用意してくれてるわけじゃない。
OSSは皆で作るもの。

ところでこの件では、思いも寄らなかった派生部分 ( YAML の文法 ) の勉強にもなった。

疑問

本当にPullRequestを出して良いんだろうか?

「これは正しい変更か?」
「PullRequestを出すべきなのか?」

あまり迷いすぎると何も出来なくなってしまう。
迷わず行けよ。行けば分かるさ。

「自分は、READMEにあって良いものだと思う」
「READMEにあれば助かる」

この気持ちを大事にしたい。

「Issueに書いても良いんじゃない?」

PullRequest > Issue > 何もしない

Issueというのは、自分で変更ができない時のものじゃないかと思っている。
(単にその機能のユーザーだったり、そもそもPullRequestが許可されていなかったり、時間がなかったり、技術的にすぐ出来ることじゃなかったり)

自分でPullRequestを出せるなら、わざわざIssueを立てるまでもない。
(もちろんレポジトリの方針にもよると思うが) Issueを立てるかPull Requstを出すかで迷ったら、後者で良いんじゃないだろうか。

ドキュメントを更新するだけでOSSへの貢献と言えるの?

ではぎゃくにきこうこれがこうけんじゃないといえるのかね?

正直言うと「貢献」でさえもどうでもいいと思っている。

  • 自分が分かりづらいものを、自分で分かりやすくする。
  • 自分が使いづらいものを、自分で使いやすくする。

これが根源ではないだろうか。

メインターゲットは自分。自分の満足のために尽くすべきだ。
自分が使いやすくなったライブラリは使いやすいだろうし、自分が読みやすくなったREADMEは読みやすい。これは当たり前。

それが他の人の満足にもつながればラッキーだけど、例えそうならなかったからと言って、何が悪いわけでもない。

あわせて読みたい?

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

34
17
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
17