GitHub上で pull request を送ってマージしてもらうことで,承認欲求を満たせることが知られています.

ということで、承認欲求に飢えている人は、有名レポジトリのドキュメントでタイポとかリンク切れを探してpull requestを送りまくりましょう!

タイポしてるよ!と言う代わりにpull requestを送る - Technically, technophobic.

あるいは,GitHub のプロフィールページの “Repositories contributed to” の欄をいい感じの有名レポジトリでいい感じに埋めたい,という人は多いと思います.

pull request を送る簡単な手段として,レポジトリ内にあるドキュメントのタイポの修正 pull request を送る,というものがありますが,自然にタイポを見つけるのには時間がかかります.

そこで,承認欲求を満たすことを主目的として,もっと積極的にタイポだけを探していくことを考えます.

numpyにプルリクを送ってみた

実際に numpy のドキュメントに pull request を送ったときを例にとって説明します1

まず,レポジトリ内のドキュメントがどこにあるかを探して,ドキュメントが何の形式で保存されているかを特定します.numpy の場合,ドキュメントは rst 形式で保存されています.

そこで,シェルプログラミング実用テクニック:技術評論社 を参考にしつつ,以下のようなコマンドを使ってタイポを探します.

find . -name "*.rst" | xargs cat | aspell -a --dont-suggest --lang=en | awk '(NF > 1) && ($1 == "#")' | cut -d" " -f2 | sort | uniq -c | sort -k1,1n | grep "\s[a-z]" | less

一応解説をしておくと,

  • find . -name "*.rst" で numpy のドキュメントのパスを列挙して,
  • cat でドキュメントの文章を全てつなげて,
  • aspell (文章校正ツール)で校正結果を表示して,
  • awk & cut で間違っている単語の情報だけ抽出して,
  • sort & uniq で集計して,
  • sort -k1,1n で登場頻度が少ない順にタイポの候補を列挙して,
  • grep "\s[a-z]" で適当に候補を絞って,
  • less で閲覧する.

という流れです.

aspell はプログラミング関連の単語に弱いらしく,”ascii” などの明らかにタイポではなさそうな単語をタイポの候補として挙げてきます.このような,タイポではないプログラミング関連の用語は複数回出てくることが予想できて,かつ,ある程度成熟したレポジトリで同じようなタイポが複数個残っていることは考えにくいため,sort -k1,1n で登場頻度が少ない順にタイポの候補を列挙します.この辺は状況に応じて適当に改変してください.

less の出力の例を以下に示します.less の出力を適当に眺めると,大抵1,2ヶ所くらいタイポが見つかります.

(省略)
1 blackman
1 blocksize
1 bools
1 btpe
1 bufferindex
1 bytecode
1 cC
1 capabilitiy
1 capi
1 cauchy
(省略)

この例では,”capabilitiy” というタイポを見つけることができました.

ということで pull request を送ります.タイポ修正のみの pull request であれば,CIツールのビルドが通り次第マージされると思います.

numpy

MAINT: Fix typo in swig.interface-file.rst by tosh1ki · Pull Request #6737 · numpy/numpy

Pull request がマージされると,以下のように GitHub のプロフィールページが一見かっこ良く見えるようになります.

github

まとめ

承認欲求が満たされます

以上です.



blog comments powered by Disqus

Published

28 November 2015

Tags