まほろばきっさ、全3巻読んだ。 いい感じの日常系で良かった。
転生したらあかりだけスライムだった件、1巻読んだ。Webで途中まで追ってたのだけど、最新の何話かは読んでなかった。良い。今後が楽しみ
ゆるゆり 20巻読んだ。このために1巻から読み返してた。
改めて読むと19巻がホラーだよなあとなる
闇金ウシジマくん、全46巻読んだ。
しばらく前に1巻だけ読んで「うーん……」という気持ちだったのだけど、2巻から面白かった。ただ後半のストーリーががっと変わるあたりからあんまり好きではなかった…。
IRBでwindow sizeを変更した時に例外で死んでしまうのでIssueを書いた。
Array#drop
のドキュメントを読んでいて、このメソッドがselfを破壊的に変更するものなのかよく分からなかったのでドキュメントを修正した。
rbs collectionを導入したことでruby/rubyのtest-bundled-gemsが落ちていたので直した。
rbs のResolv::Hosts
のテストが手元の環境だと失敗していたので直した。
テストでは/etc/hosts
に127.0.0.1 localhost
的なエントリがあることを期待しているけど、手元の環境では/etc/hosts
がコメントのみで実質空だったのでテストが落ちていた。
gem_rbs_collectionでnokogiriがEnumerableの制約を満たしていなかったのを直した
gem_rbs_collection が使うSteepのバージョンを上げた
gem_rbs_collection のSteepのバージョンを上げていて、Steepのバグを踏んだので報告した。
SteepにRBS Collectionの実装をしている。
この実装中に面白いバグを作ってしまっていた。assert target.options.collection_lock.gem('pathname')
のようなアサーションを書いていたのだけど、これが意図せず通ってしまっていた。
このgem
メソッドはRBS::Collection::Config#gem
が呼ばれることを期待している。
このテストは手元では成功していたけど、GitHub Actionsでは次のようなメッセージとともに失敗していた。
1) Error: SteepfileTest#test_collection_implicit: Gem::LoadError: pathname is not part of the bundle. Add it to your Gemfile. /usr/local/lib/ruby/gems/2.6.0/gems/bundler-2.2.27/lib/bundler/rubygems_integration.rb:336:in `block (2 levels) in replace_gem' /__w/steep/steep/test/steepfile_test.rb:153:in `block (2 levels) in test_collection_implicit' /__w/steep/steep/test/steepfile_test.rb:152:in `tap' /__w/steep/steep/test/steepfile_test.rb:152:in `block in test_collection_implicit' /__w/steep/steep/test/test_helper.rb:392:in `chdir' /__w/steep/steep/test/test_helper.rb:437:in `block in in_tmpdir' /usr/local/lib/ruby/2.6.0/tmpdir.rb:93:in `mktmpdir' /__w/steep/steep/test/test_helper.rb:436:in `in_tmpdir' /__w/steep/steep/test/steepfile_test.rb:136:in `test_collection_implicit'
どうやらBundlerが追加しているKernel.#gem
を呼んでいるように見える。手元ではなぜかKernel.#gem
が成功してtruthyな値を返すのでテストも成功していた。一方CIではKernel.#gem
が失敗するので、テストも失敗していた。
そして、ここでgem
メソッドのレシーバーはnil
になっていた。つまりNilClass#gem
メソッドを呼び出せてしまっていた。
これはKernel.#gem
がpublic methodになってしまっているため。
Bundlerのコードを読むと、この挙動はBundler v3で変更されるぽいことがわかった。
意図せずKernel.#gem
をpublic methodにしていたのを、Bundler v3でprivate methodになるようにする、という感じのよう。