🖥

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

2023/08/26に公開

この記事で言いたいこと

  • 「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オープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-07-29

Discussion