@kyanny's blog

My thoughts, my life. Views/opinions are my own.

ghn v2.0.0 released

http://rubygems.org/gems/ghn/versions/2.0.0

ChangeLog from previous stable version:

  • New Features:
    • Add open subcommand (support open(1) alternative commands at some platforms)
    • Add --all (-a) global option to list/open all unread notifications
    • Add aliases for username/reponame shot form
    • Add Follow issuecomment anchor option
  • Deleted Features:
    • --open option is removed
    • --mark-as-read option is removed
  • Bugfixes:
    • Support Release type notification

Thank you very much for Contributors!


ghn v2.0.0 をリリースしました。変更点は上記またはリリースノートをご覧ください(内容は同じです)

過去のバージョンも含め、パッチを送ってくれたりバグ報告をしてくれたコントリビューターの皆さん、ありがとうございました。


うっかりメジャーバージョンを 2 にあげてしまったけど、 pre リリースを除いた一番最新のリリースバージョンは v0.1.0 で、バージョン 1 を飛ばしてしまった。次に何か作るときは最初のリリースから v1.0.0 として出すようにするべきだなと思った。

今回バージョンアップするにあたって、内部のコードをごっそり書き換えた。なぜか自前でサブコマンドやコマンドラインオプションの処理をしていたのを thor を使うようにしたのと、 GitHub API クライアントを github_api から octokit に変更した。

前者は hub のようにファイル一個を配布すれば使えるようにと依存ライブラリを減らしたかった名残だ(当初は GitHub の API も net/http か open-uri を使って自前で叩いていた覚えがある)しかし自分が使うぶんには gem という配布形式で不便しないし、そういうツールも増えてきたように思う。そもそも Ruby が必要な時点で単体配布向きではないかもしれない。配布の容易さにこだわるなら Go で書くべきなのかもしれない。気が向いたら移植してみたい。

後者は sawyer が url という属性を風変わりに扱う問題への対処方法を知らずに苦肉の策で別ライブラリを採用した名残だ。公式の強みで仕事等でも octokit を使う機会は多く、わざわざ似てるけどちょっと違うものを使う意味もないと思って定番に乗り換えた。残念だったのは Octokit. auto_paginate が Notifications API ではうまく動かなかったこと(Link ヘッダが無いため) auto_paginate があれば --all オプションはすぐ実装できると思ってやり始めたので使えなくて拍子抜けだった。自前実装でとりあえずどうにかなってよかった。