dependency が消えてしまうやつを直してひと段落、と思いきや net-smtp 0.5.1 と Ruby の head で require "net/smtp"
が失敗するという報告が byroot などから来ていて「そんなことってある?」と調べてみたら確かにインストール先のディレクトリが空になっていた。
そういやこの症状は https://github.com/rubygems/rubygems/issues/8456 でみたような、ということでちゃんと深追いしたら確かに再現した。これ、多分僕と nobu しかわからないと思うけど、bundled gems をインストールする時には複数の gemspec を選択した上に、その gemspec を書き換えて ruby はインストールするということをしている。
で、net-smtp は dependency が消えてしまうという問題を解決するために 取り出す gemspec を想定通りのものになるようにしたのだが、これによって以下のようなケースが起きていた
この2つ目が曲者で、今回は https://github.com/ruby/ruby/pull/12708 として直したんだけど、原理的には同じ内容の gemspec なら中身が空っぽになるところが、想定していない gemspec の位置と spec.files
に指定されている git ls-files
コマンドがたまたまうまくマッチして net-smtp の中身が入ってた、ということだった。
使う gemspec を想定通りのものにする、想定通りの gemspec が使われた時に file の中身が入るようにする、という2段で直したので今度は大丈夫なはず。
オフィスに行く用事があったので、昼飯ついでに新橋に行ってパナソニック汐留美術館に行ってきた。今やっている展示はル・コルビュジエ展で、建築よりは主に絵画を中心に発想がどのように生まれたか、というのを深掘りする内容でなかなかよかった。ただ、めちゃくちゃ狭くて、それほど人は多くないはずなのに窮屈だったなあ。
昼食は近くにあるインド料理の店でチキンビリヤニ。ごちそうさまでした。