水曜は RubyGems、木曜は...って感じで毎日 Ruby の重要パーツのリリースをしているが 3.2.11 をリリースした。
https://www.ruby-lang.org/en/news/2026/03/27/ruby-3-2-11-released/
3.2 はもうセキュリティメンテナンスモードなので、ビルドエラーと CVE が採番された修正だけをバックポートって感じなのでそれほどトラブルがあるようなこともなくサクッとリリース。
朝起きていつもの仕事スタートの時間にリリースを始めると 9:00 より前なので UTC では前日として処理されるワークフローがあり、だるいーとなってしまったけどそれはしょうがない...。なので、準備はしつつ、9:00 過ぎたら公開作業、って感じになってしまう。
平日のリリースなので ruby-build などもサクサクリリースして終わり。
claude に bundler のテスト何とか早くならんのか、と壁打ちしていたら、たかだか bundler の設定を変更してテストするために bundle config コマンドを呼ぶ必要はない、というのを教えてもらい、じゃあ in-process で処理できるようにして、と知恵を与えたらできてしまった。
https://github.com/ruby/rubygems/pull/9435
プロセスの起動コストが比較的重い Windows の場合、4分割した並列実行用のテストランナーすべてで2-3分早くなり、最終的に bundler のテストが20-22分で終わるようになって最高な感じだった。
分割した Windows のテストランナーで最も遅いものと macOS で遅いものの時間がほぼ同じになったので、これ以上速くするなら E2E じゃなくてユニットテストベースで書き換えるとかそういうのが必要そう。とはいえ、こんなものも claude に「やれ」「はい」って感じでできそうなので便利な世の中だな、って思う。
今週初めに仕込んだ all-ruby のピタゴラスイッチビルド、3.3.11 の時は失敗していて理由を調べてみたら workflow 実行のパーミッションがないから、ということだったので repository dispatch で起動するようにしたら 3.2.11 では無事ビルドできるようになった。
https://github.com/ruby/all-ruby/actions/runs/23624022052
2-3年くらいやりたい、なんとかできんのか、と毎回手を動かしていたので claude のおかげで実現できたとすらいえる。ありがたい。
昨日は 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 を使わないなら、もれなく起きる気がするのでこんな時でも直せてよかった。
隔週の定期リリースの水曜なので RubyGems/Bundler 4.0.9 をリリースした
https://blog.rubygems.org/2026/03/25/4.0.9-released.html
今回、リリース途中にバックポートした変更がテスト通らなくて revert してやり直したり、CI は通ってもリリース実行時にスクリプトが date の activation conflict で途中で落ちてリカバリをかけたりとなんか散々だった。
4.0.0 から数えて9回目というのにいまだにスクリプトの実行で失敗するのが厳しいのだけど、ぼやいていてもしょうがないので全部直していくしかない
セールの時に地球の歩き方が出るたびに何も考えないで買っていたら 2026, 2027 年版のがでてしまい、2025 ですら読んでないのに... となったのでパラパラっと眺めた。
毎年出るやつを買っているので、もはや差分を探すみたいな感じになっているけど自分の記憶にある台北の範囲から大きく変わったところは2025年版にはないかな、って印象だった。とにかく円安がきつすぎて、韓国ならかろうじてくらいで台湾ですら行くのをためらってしまうのだよなあ。つらい。