ちょっと前の話になるものの、Ruby 3.5 向けに今までは ruby/irb または ruby/reline と ruby/ruby とで平行開発されていた irb と reline の2つを bundled gems にして ruby/ruby からはほぼ独立させた。
https://github.com/ruby/ruby/pull/12624
これによって、sync を毎日のレベルで頑張るとか、Ruby のリリースに合わせて何かしら頑張るということから解放されてメンテナ独自でできる裁量が広がった、ような気がする。
ただ、やってて気がついたんだけど binding.irb
だけじゃなくて bundle console
を実行しら irb
を強制的に呼び出すということをやっていて、Gemfile に irb
がない時でも動くようにはしたほうがよさそうだった。この辺は次の preview までにちゃんとやる、ということで。
ruby/ruby の中にも irb を executable として期待したテストがいくつかあって、その辺もできる限りパッケージに依存しないような形に書き換えたつもりだけどなかなか大変だった。あと過去の経緯から readline.rb
を期待するようなコードがあちこちにあって、readline-rb
をインストールしている環境だとおかしい動きになったりとその辺の依存をうまいこと解決させるというのがなかなかではあった。
次は残りの fiddle かなあ。fiddle を ruby/ruby から外すと何故か Windows で rubygems が壊れるという現象と RJIT が動かないという2つの課題があって、これは真面目に調べる必要がありそう。事前の調査では gem install fiddle
で事足りるはずだったんだけどなあ。
手元の macOS で make test-bundled-gems
を実行すると結構な確率で net-imap のテストが落ちてしまうので、真面目に再現率を調べつつ、雑に回避するようなコードを仕込んでいた
https://github.com/ruby/net-imap/pull/389
実行する場合には、この前入れた単独の bundled gems を指定してテストを回す方法の make test-bundled-gems BUNDLED_GEMS=net-imap
を使うと楽。
勝手にサービスに登録されたシリーズで exitlag というサービスに自分のメールアドレスで誰かが勝手にアカウントを作って使っていたのだけど、広告っぽいメールも邪魔なので退会した。
最初どこから退会するんだ、とアカウント設定を眺めていたけど見つからなかったのでサポートチケットに「アカウント削除してください」と書いたのを作ったらやりとりもなくいきなり削除されて笑ってしまった。