トップ 追記 RSS feed

HsbtDiary


2017/04/28 (金) [長年日記]

Ruby CI を Rails 5.1 にした

bin/rails app:update をシュッと実行しておいた

https://github.com/nurse/rubyci/pull/25

デプロイして気がついたんだけど、heroku はもういい感じに対応していてデプロイ時に nodejs と yarn をインストールするようになっていて流石だなあと思った。

gdbm-2.0.0.beta1 をリリースした

Gemification の進捗です。先日の fiddle に続いて同じ名前で別実装の stdlib が rubygems に登録されている、のやつで gdbm も C 実装の stdlib とは異なるものが登録されていたので、まずは owner にネゴる所から初めた。

gdbm は fiddle とは異なって、全く異なる内容の gem ではなく、ffi で gdbm を呼び出すという用途としては同じだけど実現方法が異なるというもの。なので transfer してもらうように交渉しても、実現手段が異なるがこれは有用な gem だという主張も一理あって断られるかな...と危惧していたけど結果としては平和に譲ってもらえることになった。

早速 C 実装を 2.0.0.beta1 として登録しておいた。

https://rubygems.org/gems/gdbm

過去の ffi 実装のバージョンについては利用用途も明確で stdlib のそれを破壊するというようなものでもないことから、いきなり yank するのではなく 2.5.0preview1 のリリース時に、アナウンスとして gemification するから gdbm はこの後でいついつに全て yank するよと共有してからしようと思う。

次は csv, fileutil, etc の gem をどうにかする、です。 続く。


2017/04/27 (木) [長年日記]

最近の heroku を API で ruby から操作するやつで定期再起動

Heroku で定期的に dyno を再起動したい事案(要は社内向けアプリケーションのメモリリークとかそういう奴を雑に解決したい)が発生して、一昔前は heroku.rb 使って何かをやっていたんだけど、最近はどうやるんだっけと軽く調べたら platform-api というのを使うらしい。

例えば雑に再起動するなら下のような感じ。

PlatformAPI.connect_oauth(ENV['HEROKU_OAUTH_TOKEN']).dyno.restart_all('your_app_name')

上記のようなコードを雑に rake task にして heroku scheduler に仕込んでことなきを得た。相変わらずよくできている。


2017/04/26 (水) [長年日記]

fiddle gem をリリースした

今年に入ってからずーっと続けてる Gemification プロジェクトの一環で fiddle を gem にしていいかと @tenderlove に聞いたら、「いいよ」と返事もらったのでシュッと gem にした。いや、シュッとはできなかった。

と言うのも fiddle は rubygems.org に別実装の fiddle と言う Rails Engine な gem が全くの同名ですでに登録されているという状態にあって、fiddle gem をリリースするにために owner へ譲ってくれないかと言うのをまずはネゴるところからスタートした。

上記二つ目のリンクから確認できる 0.6.3 以下のバージョンが別実装の gem となる。幸いにして、owner はもうメンテしてない gem だから transfer するよと快く応じてくれたので、owner として自分が登録されたのちに過去の gem を yank して、ruby/ruby の ext/fiddle な実装のコードを fiddle gem の 1.0.0.beta1 としてリリースした。

https://github.com/ruby/fiddle

後日談として、 https://github.com/ruby/fiddle/issues/1 と言う issue が立てられていて、以前の gem を使っていたユーザーかなとごめんねと最初はコメントしたのだけど、reference として付いているコミットを見たら報告した人は過去の fiddle gem を standard library の gem と思って追加していたらしい(実際には全く関係ない Rails Engine をロードしていた)。この状況はわからない人には混乱しかない不幸な状況といえるので、standard library と同名の gem は早急に standard library な実装で上書きするなり yank しないといかんな、と心新たにしたのだった。

世界が平和になるには fileutil や etc もなんとかしないとダメなんだけど、今年一年かけてじわじわやっていくって感じになりそう。頑張ろう。