メリクリ〜、ということで Ruby 3.4.0 とバージョンナンバーの表記を修正した 3.4.1 がリリースされた。
詳細については上のエントリや各種媒体から出された解説を読んでもらうとして、今回は https://www.ruby-lang.org/ja/news/2024/12/25/ruby-3-4-0-released/ の翻訳をせっせとやっていた。英語を読めばよい、というのはあるものの、結局みんな読むのは日本語のエントリなので、日本においては日本語の情報は重要なのだ。
しかし、翻訳するにあたって YJIT にでてきた "exited counter" ってなんすか、などちょくちょくと k0kubun くんに聞いたりしていたので、文脈というか書いてある事項をちゃんと読まないとわからないもんだな、とも思った。あとは modular GC も存在は知っていたけど、こんな機能だったんだ!などは翻訳していて初めて知ったりもした。
https://github.com/rbenv/ruby-build/releases/tag/v20241225.2
ruby-build の方もシュッとリリースした。この辺全部手作業だったのだけど、前に構築した自動リリースのピタゴラスイッチは X.Y.0 の初回リリースでは動くようには作られていないのでなかなか難しい。この辺は動かない箇所を見つけ次第パッチを当てて頑張っていこう。
Ruby のリリースの状況を見守りながら bugs で使っている Redmine のアップグレードをしていた。いつも通り、upstream と fork して使っている repo の diff を生成してから、Redmine 6.0 の方にパッチをあてて、reject されたものの内容を眺めてパッチを書き換えたり、無視したり。
あとは Rails 6 から 7 になったので、独自に入れている plugin の未対応部分を 7 向けにコードを書いていた。中でも zeitwerk の規約に沿ったファイル配置とコードの内容がやっててとても微妙で、具体的には
if condition
module Foo
end
Bar.include(Foo)
end
というような foo.rb は Foo が未定義の時があって許されないので、
module Foo
end
if condition
Bar.include(Foo)
end
と書き換えていた。仕事のための仕事って感じでだいぶだるかった。最終的にはこんなんでいいのか、というような対応でだいたい動いてしまった。
これが変更前の Redmine 5.1 で
変更後はこんな感じにちょっとモダンな見た目になった。リリースノートをみると、この辺のアイコンを全て SVG にした、など look & feel の面でだいぶ使いやすくなったような気もする。それにしても 10 年以上使い続けて db:migrate
もすんなり通って使い続けることができる、というのは本当に尊いと思う。
Rails 7 向けの configuration などは細かく見てないので、そのへんはぼちぼちやっていきます。