rubygems/rubygems のコードは基本的にディレクトリ構成だけ少し変えて ruby 本体にコピーすればインストール前のビルド直後の ruby バイナリでもテストが全て動くということになっているんだけど、ちょっと油断すると ruby 本体では動かないコードが rubygems master に入ったりするので夏休みの時間を使って全部直した。
(なんでこういうコミュニケーションロスっぽいことが起きるのかは builderscon tokyo 2017 で話しました)
直したテストケースは以下の二つ。
一つ目は default gems は make install
しないと存在を確認することはできないので、除外しますよというやつで二つめはディレクトリ構成異なるから File.expand_path
使ってねというやつ。二つ目は単純に File.expand_path
にするだけだと、なぜか Travis の Ruby 1.8 な環境でテストが落ちるので Travis をデバッグしながらやっと直すことができた。
原因は gem をビルドするようなテストの場合、テストメソッドのコンテキストでは __FILE__
が TEMP パスになってしまっているので File.expand_path
で test ディレクトリを期待するようなコードは動かないというものだった。代替手段ないかな...とテストコードを読んでいたら、Gem::TestCase
で似たような証明書を参照するためのヘルパーメソッドを定義しているのを見つけたので、それを使って fixture としての証明書をテストの実行環境に寄らないで参照することができるようになった。大変すぎる。
bundler の方にもいくつかパッチ投げているけど、ひとまず現状の rubygems/bundler のマスターを ruby にバンドルしてもテストは全部とおるようになった...かな...
特に理由は無いけど、色々使ってみようということで Atom から VS Code にスイッチして使ってみることにした。
入れた Extension は Emacs Keymap で、設定で autosave を有効にしただけ。あとはいつも使っているエディタ起動の alias の e を
alias e "/Applications/Visual\ Studio\ Code\ -\ Insiders.app/Contents/Resources/app/bin/code"
という感じに設定して終わり。
Atom + emacs-plus の時に比べて "Cmd + T" だとタグジャンプになってしまうので "Cmd + p" で Atom の時と同じファイルオープンとして使っている。Ctrl + space で mark set してから Alt で word ごとに移動という範囲選択が動かないのがだいぶめんどいのだけど、これも別の手段で上手いこと慣れて頑張ろう。
大通りでさえらのサンドイッチを食べたり、ジュンク堂をうろうろしてから地下鉄二十四軒の近くにあるレトロスペース坂会館というところに行ってみた。
今、札幌で開催中の札幌国際芸術祭のイベントスペースに提供している施設の一つとなっていて、妻もずーっと前から気になっていたという話だったのでこの機会に寄ってみた。いわゆるレトロというか"昭和"を連想するような品をたくさん並べていて、妻と二人でこういう筆箱あったわーとか、拓殖銀行のクリップやばい...とかおしゃべりしながら中を見物していた。
北海道の人なら名前は知らなくても、食べたことがある坂ビスケットが隣接する店舗で販売されていて、二重で懐かしい気持ちになれてお得なので時間がある人はシュッと行ってみるとよいです。