OSSに貢献したいのに、まだ貢献していないあなたへ ( GitHubでのPullRequest作成のススメ )
この記事で言いたいこと
- 「OSSへの貢献」って敷居のイメージが高すぎる気がする。
- 実際はもっと「皆でわいわい・がやがやとやる」イメージ。
- OSSは遊び場。PullRequestはコミュニケーション手段。
- ボーイスカウト精神から始めよう。
- PullRequest / Issue を出さないのは悪だ (出すのが悪ではない)
- 「自分のニーズ」を軸にしよう。
- 「自分が分かりづらい」READMEを訂正する。
- 「自分が欲しい」機能のIssueを立てる。
- 逆に「自分が不都合を感じていない」「欲望を感じていない」事柄に対してPullRequestを出そうとしても、モチベーションが持てないんじゃないかと思う。
CASE. ライブラリの中に隠し要素を見つけた時
へぇ! こんな環境変数使えるんだ。
きっと隠しコマンド”みたいな”ものだな。
だって README に書いてないし。
(まあ、書いておいても良いと思うんだけど)
‥で終わらせるなよ!
Pull Request 出そうぜ。
README のテキストを1行追加するだけ。
レビューを受ける
表現だけ訂正したら良さそう。
マージ・反映される
すぐにREADMEにも反映される。
こうして隠し要素は公式要素になったのだった。
CASE. ニドランの謎
ダミーデータを生成するライブラリに「ポケモンの名前」という種類のものがあり、そこに二匹のニドランが登録されていた。
「ニドランはオスメスの二匹がいる」というポケモン基本知識を持たずに、片方を削ったPullRequestを出したら、コメントがついた。
「男女を表すマークを付けたら良いんじゃない?」
だがこの時はコメントの意味を取り違えて、すぐに自分でPullRequestをCloseしてしまっていた。
(というか、今振り返っていてコメントの意味に気付いた)
Faker::Pokemon two Nidorans by YumaInaura · Pull Request #833 · stympy/faker
CASE. ドキュメントの謎
ドキュメントを眺めてて、謎を感じる。
何度読んでもつじつまが合わない。
やがて「ドキュメントの不備」なんじゃないかと理解し始める。
まあ、人が作るものだし、仕方ないんだろうな。
‥じゃないんだよ! PR 出そうぜ!
そこで立ち去ってる場合じゃない。なめんなよ。
最近じゃGitHubで管理してるドキュメントも多い。
PR作ってドキュメントを直そう。
PR出してみた例
たまたまApproveが付いたが、これは結果論なのだ。
PR提出は「意見」であり「クレーム」でもあり「メッセージ」でもある。
「問いかけ」であり「コミニュケーション」なのだ。
CASE. テスト環境が壊れていた
PullRequestを出す前にテストを走らせたら、何やら大量に黄色い文字が出る。
まさかテスト環境が壊れているとは思わず「まあ、こんなものかなぁ」と最初は思っていたが、なんだかおかしい。
いろいろと調べているうちに、環境依存でテストが落ちてしまうことが分かった。(GitHubのCIも落ちていた)
以下略
見て見ぬふりせずプルリクチャンス。
テストが壊れている、そんなこともある。
必ずしも「正しく動く環境」を誰かが用意してくれてるわけじゃない。
OSSは皆で作るもの。
ところでこの件では、思いも寄らなかった派生部分 ( YAML の文法 ) の勉強にもなった。
疑問
本当にPullRequestを出して良いんだろうか?
「これは正しい変更か?」
「PullRequestを出すべきなのか?」
あまり迷いすぎると何も出来なくなってしまう。
迷わず行けよ。行けば分かるさ。
「自分は、READMEにあって良いものだと思う」
「READMEにあれば助かる」
この気持ちを大事にしたい。
「Issueに書いても良いんじゃない?」
PullRequest > Issue > 何もしない
Issueというのは、自分で変更ができない時のものじゃないかと思っている。
(単にその機能のユーザーだったり、そもそもPullRequestが許可されていなかったり、時間がなかったり、技術的にすぐ出来ることじゃなかったり)
自分でPullRequestを出せるなら、わざわざIssueを立てるまでもない。
(もちろんレポジトリの方針にもよると思うが) Issueを立てるかPull Requstを出すかで迷ったら、後者で良いんじゃないだろうか。
ドキュメントを更新するだけでOSSへの貢献と言えるの?
ではぎゃくにきこうこれがこうけんじゃないといえるのかね?
正直言うと「貢献」でさえもどうでもいいと思っている。
- 自分が分かりづらいものを、自分で分かりやすくする。
- 自分が使いづらいものを、自分で使いやすくする。
これが根源ではないだろうか。
メインターゲットは自分。自分の満足のために尽くすべきだ。
自分が使いやすくなったライブラリは使いやすいだろうし、自分が読みやすくなったREADMEは読みやすい。これは当たり前。
それが他の人の満足にもつながればラッキーだけど、例えそうならなかったからと言って、何が悪いわけでもない。
あわせて読みたい?
- 小さな小さなプルリクエストを大きな大きなリポジトリに通した - Qiita
- Github で Fork して PullRequest を送るのはこんなに簡単 - Qiita
- 拝啓 本当は Qiita を書きたいのに、まだ迷っているあなたへ。 - Qiita
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2018-07-29
Discussion