というわけで今週に入ってから気合を入れてやっていた 4.0.0.beta1 をリリースした
散々 DRYRUN などでテストしていたにも関わらず rake bundler:release で失敗してしまい、「はー、またこれだ」とため息をつきながら GitHub release の作成処理のところを prerelease 対応しつつ、破壊的ではないアクションのところを見つけたリカバリしたりしていた。
https://github.com/ruby/rubygems/pull/9103
bundler の prerelease バージョンを使う、というのは意外とだるくて gem i bundler --pre でインストールしてから、すでに lockfile が存在するときは lockfile を消すか、BUNDLED WITH を 4.0.0.beta1 などへ手で書き換える必要がある。
これも self_manager.rb ってやつの動きなんだけど、これ本当に害しかないから 4.1 で無効化しようと思う。ひとまず、色々試してフィードバックいただけるとありがたいです。何かあれば残り1ヶ月で色々修正を頑張ります。
リリーススクリプト、とにかく何度も何度も実行するというのが安定性を高めることになるので、毎週でも beta2, beta3 という感じで出して 12 月上旬に 4.0.0 かなあという予定。
byroot が作り忘れているのでは、というのをどこかで書いていたので作っておいた。
軽く眺めてみると module Ruby を toplevel に作った、とか NEWS に書いてなくて笑ったんだけど、めちゃくちゃ抜けている項目だらけなので残りの1ヶ月は本気を出して埋めていく必要があるんだろうなあ。自分だけじゃなくて気がついた人は書いてもらえるとありがたい...。
大体マージできるものはマージして、4.0.0.beta1 をリリースするか、という気持ちになったのでリリースタスクを眺めて、「リポジトリ変わったけど動くのこれ?」などを眺めたり、毎回実行するたびに途中で落ちてリカバリ作業をする、というのを繰り返していたので DRYRUN して destructive なアクションのみスキップする、というのを入れていた。
https://github.com/ruby/rubygems/pull/9099
この処理の中に GitHub の pull request を持ってきて changelog を作るという処理があるんだけど、何度やっても merge されているはずのエントリが表示されない、というのがあり「なんだこれ」とデバッグしていたら、ラベルが付いているものを抽出するということだったので、せっせとラベルを付け直したらちゃんと出てきた。
結局デバッグを繰り返して、DRYRUN で一度も止まらずに期待する処理まで辿り着いたのは夜だったのでリリースは次の日にした。お疲れ様でした。
前日の話になるけどエアコンを起動することは今年はない、という状況になったのでエアコンの清掃を業者に依頼した。前回はダスキンに依頼したけど、今年はたまたまチラシが入っていた東京ガスのハウスクリーニングサービスを使ってみた。理由としてはインターネットだけで予約が完結するというのと結構安いという2つ。
実際の作業の前日、今回でいうと月曜に以下の作業担当者が行きます、という写真付きのメールが届いて、当日の火曜にも SMS でメールが届くという感じだった。実際の作業はというと1台90分*2の3時間の長丁場のコースにも関わらず、作業中も前後の写真撮ってくれますか、という要望にも応じてくれたりと、めちゃくちゃ丁寧なのが良かった。
掃除前の写真、ここに掲載するのも厳しいくらいの黒と白のカビだらけというのが、掃除の後は大体全部なくなりましたという結果になったので満足。作業に来た人は割と若い人で、最後に「満足いただけたら後のアンケートで9か10をつけてくれると嬉しいです!」と言ってさっていったので、アンケートで10をつけてめちゃくちゃ褒めておいた。
これ、今年は結構期間が空いてしまったけど、2年に1回くらい、ルーチンに入れて掃除するようにしたほうがいいんだろうなあ。
RWC で Matz に master のバージョンを 4.0.0 にしてくれ〜、早く〜とやった甲斐もあり 4.0.0-preview2 がリリースされた。
https://www.ruby-lang.org/en/news/2025/11/17/ruby-4-0-0-preview2-released/
3.5.0-preview1 の次は 4.0.0-preview1 なのか 4.0.0-preview2 なのか、どっちにしますかね、というのを実は確認していたんだけど 4.0.0-preview2 ということになった。3.5.0 = 4.0.0 と頭で解釈していただく感じでやっていきましょう。
prerelease なものの 4.0.0 なバージョンであるパッケージも出たことだし RubyGems の方もやるか、と beta1 リリースに向けて本気を出し始めた。
https://github.com/ruby/rubygems/pull/9089
溜まっている pull request を全部眺めて、マージすればいいんじゃね、ってのはバンバンマージはしているのだけど、vendoring している依存ライブラリが微妙に古いのもあって、それらを更新したり、パッチが当たらなくなったので更新していたら1日が終わってしまった。
しかも resolv-0.8.0 が JRuby でスタックするような挙動があり、0.7.0 にロールバックしたりと、しばらく更新をしていないと何をやっても詰まることが多くて辛い。この辺の vendoring まじでやめたいので何か考えよう。
4.0.0-preview2 が出たので all-ruby にもイメージを追加。ruby-build の方はうまく連携されていたので良かったが、こっちは手作業なのであった。
https://github.com/ruby/all-ruby/commit/1ee414fe62a82787bbd60eb6c21ba197cf8d2f44
なんか Windows の Docker desktop の調子が悪くて、何度もネットワークエラーが起きてしまい、最終的にビルドが終わったのは朝から初めて夜、って感じだった。特に何かの設定をいじったというわけでもないのでなんだろうなあ。