10/19 GitHub再デビュー!

日頃からEmacsのパッケージを見てレビューを書いている僕ですが、この機会なので活動報告も兼ねて普段何をやっているかを書いていきます。
ここ1ヶ月の活動を一言で言うと GitHubを活動拠点としている ことです。

GitHubには2008年12月に登録したのですが、これまでほとんど活動していませんでした。
僕は物事を理解・習得するのがとても遅いためにgitそのものを理解するのにかなり苦労しました。
最初はRCS・Subversionの代わりとしてEmacs VCやmagitからローカルで普通に使っていました。
それはそれで特に困ることはありませんでしたが、git独自の概念を理解するのにかなりの年月を要しました。
GitHubのpull-requestの有用性を理解しつつも、gitそのものの理解不足による不安でいつしかGitHub恐怖症に陥ってしまいました。
hubコマンドの存在によりコマンドラインからGitHubにアクセスできることを知りましたが、git初心者だった僕には解決不能なエラーがでて挫折しました。
GitHub恐怖症を克服しようと悪戦苦闘しつつも、日々の生活の忙しさからなかなかとっかかりをつかめずに月日がたってしまいました。

そして先月一念発起をしてGitHubについて真剣に勉強しました。
Emacs界により貢献したいのでpull-requestを円滑に送信する方法について調べました。
以前はelispパッケージにバグがあっても設定でもみ消していましたが、それではいけないと思いました。
やはりpull-requestを作者に送る方が全世界への貢献になると判断したからです。
これからもこの活動をしてくにあたっては何度もpull-requestを送ることになるので、ここで確実に学んでおいた方が良いに決まっています。

学んで出た結論がgit-push-or-pull-requestスクリプト です。
一連のコミットが終わった後でC-x v pでこのスクリプトを実行するようにしています。
自分のリポジトリに対してはgit pushを、他人のリポジトリに対してはpull-requestを送信します。
そのココロは「とにかく適切なものをGitHubに送信してくれ!」です。
恥ずかしながらpull-requestには、fork→push→pull-requestの順にhubを実行する必要があることに気付くのにかなりの年月を要してしまいました。
てっきりhub pull-requestがそれらすべてを行ってくれるものと思い込んでいたためにエラーが解決できなかったのです。
それが理解できた今は、何も考えずにC-x v pでGitHubに送信できる環境を構築できたので、とてつもなく大きな前進です。
この設定のおかげでpull-requestが円滑になり、以後まるで呼吸をするかのようにpull-requestを送るようになりました。
10/19は新体制でpull-requestを送ることに成功し、その日こそが僕の GitHub再デビュー となりました。

「人に聞けばすぐにわかりじゃないか」と言う人もいるでしょう。
しかし僕は一人で活動しているしアシスタントやメンターはいません。
問題が起きたら自分で真正面から取り組み、そこから学ぶしかないのです。
自分で苦労して身に付けたものは忘れないし本当に力になることも知っているので、それはそれでよいと思っています。
移り変わりの激しいIT業界の最先端では僕のように理解の遅い人間は戦力外かもしれませんが、幸い僕は経年劣化しにくいEmacsをフィールドにしています。

GitHubについては何周分も遅れてしまいましたが、今やっと活発に活動できる体制が整いました。
大した能力がない僕でも貢献できる分野があることに喜びを抱きつつ、今後もEmacs界を少しでも良くする活動をしていきます。
よろしくお願いします。
メルマガに登録していただけると飛んで喜びます。

活動報告

10/19の再デビュー後、毎日GitHubで活動しています。
というのは、10/24に本サイト全体をGitHubに置き、ポスト後自動コミットしているのでサイトを更新すれば自動的にGitHub連続活動日として記録されます(笑)
そうでなくても、レビューを書くときにソースコードを読むのですが、ちょくちょく修正pull-requestを送っているのでコミットは多くなります。
10/19〜12/11のコミットは総数146、pull-requestは27です。

10/19、10/20 howardabrams/demo-it

  • デモ終了後にウィンドウ構成を復元するようにした
  • デモ開始時にdelete-other-windows実行
  • autoload付加

10/23 pgrepper(解説) 登録!

grepなどを用いてpecoの検索を超強化する自作プログラム

10/24 rubikitch/daily-emacs-jp(解説)

本サイト全体をGitHubに置きました!!

10/25 cadadr/paper-theme(レビュー)

  • autoload付加でemacs -Qからでもエラーが起きないようにした

10/21〜10/26 thisirs/state(レビュー)

理解しづらかったので、理解を促進させるために大きなリファクタリングを敢行!
test-simple.el(レビュー) によるテストも書きました。

  • 大幅なリファクタリング
  • テストを書いた
  • priorityのバグを修正

10/27 git-push-or-pull-request(解説) 登録!

動作が軌道に乗ってきたのでGitHubで公開しました。

10/28 mineo/yatemplate(レビュー)

yasnippetでautoinsertの設定をする便利なパッケージですが、大きなバグがあったので修正しました。
マージされるのが遅く11/11にてやっとマージされました。

  • yatemplateのsnippetのテストができるようにするためにsnippet-modeにする
  • yatemplateファイル保存後、auto-insert-alistに反映させる
  • 古い設定が残ってしまうバグを修正
  • テスト付加

11/1 srdja/iodine-theme(レビュー)

  • emacs -Qで実行するとエラーが起きるので修正

11/3〜11/4 ilya-babanov/emacs-bpr(レビュー)

  • autoload付加
  • emacs -Qでのエラー修正
  • M-x bpr-open-last-buffer新設

11/7 renard/dired-toggle-sudo(レビュー)

  • emacs -Qでのエラー修正
  • sudo/userの切り替え後、元と同じファイルを指すようにした

11/6〜11/9 abo-abo/auto-yasnippet

  • aya-create-one-line改善
    • aya-marker-one-line ($)を参照すべきところがハードコーディングされていたので参照するよう修正
    • READMEで説明しているようにaya-marker (~) がない場合のみ aya-create-one-line を動作させるように修正
    • カーソル行が末尾にあるときの妙な挙動を修正
  • aya-create-with-newlineオプション新設。最後に改行を入れてくれるのでRETを押す必要がなくなった。

11/10 昔つくったauto-document.el 登録

昔作ったものだがパッチが送られてきたのでGitHubに登録。

10/23〜10/25 11/10〜11/11 rocky/emacs-test-simple(レビュー)

今一番のお気に入りのelisp用テスティングフレームワーク!

  • assert-equalで失敗したときにきちんとS式を表示するように修正
  • MELPAの規約に沿うよう、使用例のテストファイル名を gcd-tests.el に修正
  • M-x test-simple-runを新設
    • これを実行することでemacs -batch -Q状態でテストを開始する
    • コマンドラインを登録できるようにした
  • emacs -batchでのテストが失敗したら異常終了させた

11/11 ReanGD/emacs-multi-compile(レビュー)

  • 無限ループすることがあるバグを修正
  • アクションが1つのときは選択肢を表示させずにそのまま実行させるように修正

本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。