Bundler のインストールの細かい時間を表示してほしいというリクエストがあって、あると何かしら便利なことがある、というのはわかるのだけど、shell の実行時間表示、と同じで便利な気分になるだけでほとんど意味ないと考えている。
https://github.com/ruby/rubygems/pull/9153
僕の場合は本気で改善しようとする時に DEBUG 表示で見ればいいのであって、ユーザー全員に、常に表示する必要はないということで reject するつもりだったのだが、最近 plugin として利用できる hook を追加したのを利用して、こんな感じで書けばすぐに実現できるよ、と bundler-timing-plugin というのを作った。
https://github.com/hsbt/bundler-timing-plugin
必要なフックポイントがないと動かないので、開発中のバージョンである 4.1.0.dev でしか動かないのだけど、半年以内には出るであろう 4.1.0 だといい感じになると思う。
この plugin、claude に「これとこれを見て構造を理解してから、 9153 でやりたいことを最近新しく追加した plugin hook を使って bundler の plugin にして」(というような内容)でシュッと作ってくれたので本当に楽になったなと感じる。
ほぼ昨年の話になるんだけど Raynesys というメーカーの折りたたみ型キャリーワゴンを車での旅行用に買って、衣服などを入れたボストンバッグやら買い物した段ボールやらを放り込んで運ぶ、ということに便利に使っていたんだけど、気がついたら車輪の1つがなくなっていて「なんで!?」となっていた。
おそらく、畳む、出す、などを繰り返しているうちに外れてどこかに落ちたのだろうけど、家や駐車場の間を探してもあるわけはなく、ホームセンターでそれっぽい車輪を探しても当然合うわけもなく、また新しいの買うのやだなー...となっていたところ、Amazon のサポートページから販売元に連絡したら車輪だけ送ってくれてめちゃくちゃ助かった。
保証期間とはいえ、こちらの瑕疵による紛失、にもかかわらずパーツを送ってくれたのでめちゃくちゃ好印象だった。次回 Raynesys が扱っているもので欲しいものが出てきたら、ここから買おうと思う。
Ruby 4.0 に入った Socket などのメソッドに timeout を指定可能になったんだけど、そこの処理が場合によってはクラッシュする、ということで CVE-2026-46727 を取得して情報公開した。
https://www.ruby-lang.org/en/news/2026/05/20/getaddrinfo-cve-2026-46727/
今回久しぶりに MITRE 経由で CVE をアサインしたんだけど、一時期は 2週間くらい応答ないな、という時もあったものの今回は金曜に申請して日曜には CVE が発行される、という爆速っぷりで良かった。
CVE-2026-46727 に合わせて、これは Ruby 4.0 もリリースしないとダメだね、と k0kubun 君とやりとりしつつ CVE の公開とリリースをした。主に自分は情報を用意して k0kubun 君がアナウンスやパッケージを公開する、という感じで進めたので割とすぐだった。
https://www.ruby-lang.org/en/news/2026/05/20/ruby-4-0-5-released/
今回久しぶりに Ruby の同時リリースもハンドリングしたけど、3.3-4.0 全部に影響あります、という時だと作業手順や誰が、何をするというレベルで準備しないと時間のロスが多すぎるな、って感想だった。非同期に何かしていくというところだと高速にできるようにはなったので、こっちの方も頑張ろう。
Ruby 4.0.5 などのリリース日であると同時に、RubyGems/Bundler の定期リリース日だったのでエイっとリリースした。
https://blog.rubygems.org/2026/05/20/4.0.12-released.html
前回のリリースがちょと大変だったので、claude で直しまくった結果、コンフリクトは発生しないで全部バックポートして、よっしゃリリース、というところで master にだけ含まれている test helper を使っている箇所でテストが落ちたのでやり直しだった。
今回は RubyKaigi 2026 中に開催したコード懇親会で送ってもらった不具合修正や改善を中心にバックポートして入れている。ちょっと ruby/rubygems をみる時間が減っていたので次回のリリースに向けて細い不具合修正などをやっていかないとなあ。
今週は Matz がいたので mame さんなどが spinel をいじってみたというので方針であるとか、Ruby のサブセットと言っていいんすか?とかそういう話をしていた。
こういう話題が盛り上がると1-2時間はすぐだねえ。
先週くらいから Ruby の canonical リポジトリである git.ruby-lang.org が詰まることがちらほらあって、なんだ、と思い claude に 3日分の apache2 のログを読み込ませて、「なんとかして」とぶん投げてなんとかしてもらった。
要は、IP で絞っても相手はローテさせてアクセスしてくるから意味がない、90%以上のアクセスを占める hash 付きの URL を GitHub に 302 で redirect、そして vhost の中に書かないと意味がない(!!!)というのを見つけて反映させたところなんとかなった、気がする。
datadog の画面くらい勝手にみてくれよ、と同じでログくらい勝手にみてくれよ、というのはあるので安全にシュッと見せることができるようにするのに時間を使うのが良さそう。