ruby/spec という CRuby, JRuby, TruffleRuby で共通で動かしているテストスイートがあり、それを CRuby の安定バージョンでどう動かしたもんか、というのをメンテナとディスカッションしていた。論点としては
ruby_3_1
ブランチで Ruby 2.7 で動くかどうか、などはテストしようがないという状況で、安定版ブランチではどのバージョンのどこにある ruby/spec を動かすべきか、という問題がある。今までは、安定版ブランチの中の ruby/spec を積極的に直すということはなされてなかったので、tzdata の変更など、それこそ何もしてないと壊れるテストなどに追従するために ruby/spec から最新版を持ってきて上書きして実行ということをしていたけど、それはそれで ruby/spec の方だと動かないテストが出てきた、というのが今日新たに発生した事象。
結論としては、やはりブランチごとに同梱されている ruby/spec を用いる、壊れたら ruby/spec なり何かを参照するなどして直す、upstream で直ってるならバックポートを行う、ということになったので、それに伴う変更をあちこちでしていた。
このての複数の関心ごとがあるプロダクトを組み合わせ何かをする、というのは本当に大変。
おまけ: tzdata の変更で壊れたテストをコメントアウトから再度有効にする変更も出てたので Ruby 2.7-3.1 にバックポート PR を作っていた
https://github.com/ruby/ruby/pull/6468
tzdata はほんとになー... TZ 周りのテストをある程度はやる以上はしょうがないけど。
ruby/spec をいじるついでに色々気になったことがあったので直していた。
https://rubyci.org/ の master は割と監視してるけど、Ruby 2.7-3.1 の方は赤かったりするのが多いのでもうちょい頑張りたい...。