昨日は RubyGems でこの日は Ruby 、ということで Ruby 3.3.11 をリリースした。
https://www.ruby-lang.org/en/news/2026/03/26/ruby-3-3-11-released/
Ruby のリリースはタグを打てばほとんどが自動で動くようにしてあるので、それを眺めつつさらに自動化できるポイントはどこかなあとか考えているうちにリリースが終わった。
Ruby 3.3 はこれが通常バグの修正が最後のバージョンで、今後はセキュリティ対応とビルド問題の修正のみのセキュリティメンテナンスモードになる。なので、今 Ruby 3.3 を使っている人は1年後くらいを見据えて 3.4/4.0 あたりへのバージョン更新をご検討ください。
直した、と言っても直したのは claude なのだが、再現手順を確定させてから、この問題が起きる原因と解決方法を考えよ、とぶん投げたら30分くらいあれこれやってから default gems の date ライブラリは C 拡張の本体が rubygems 標準のディレクトリにはないから default ではない通常の gem を activate しようととして衝突してる、というところまでつきとめて「おまえすごいな」となっていた。
https://github.com/ruby/rubygems/pull/9431
結局、そういう原因なら C 拡張なものを許容して gemspec としては C 拡張のファイルが確実にあるので細かく探索するな、ということにして問題が解決した。これ、rdoc を例にしているけど、ほかにも date を dependency に入れてる gem かつ bundler を使わないなら、もれなく起きる気がするのでこんな時でも直せてよかった。