ruby/ruby
のリポジトリから WEBrick を消すということを始めたWEBrick は Ruby で書かれた HTTP サーバーだけど、production で使うようなものではなくあくまでも開発用途というつもりで我々は提供しているところに、脆弱性報告が多数来て面倒ということで Ruby の配布パッケージからは消してしまったのだが、ruby/ruby
のリポジトリではテスト用途のために場所を変えて残っているというのが現状となっている。
が、WEBrick は URI とか IPaddr など default gems として提供されているものを多数ロードしており、それが原因で将来的にも bundled gems にできない(= Ruby のテストが動かなくなる)ので、WEBrick を使っているテストをせっせと TCPServer
などで書き換えるというのを始めた。
ざっと調べると、WEBrick を使って mock サーバーを作っているのは rubygems, net-http, open-uri の3つで、どれもきっついなー...という事前調査ではあったものの、比較的やりやすそうな rubygems から取り組むことにした。
https://github.com/rubygems/rubygems/pull/7829
1/3 - 1/2 くらいは ChatGPT や copilot に Thread 使ってると動かんのだけど、とか、HTTP のヘッダをパースして、みたいに指示を出してコードの雛形をざざっと作ってもらって、手直しというのをやっていた。便利。
rubygems の方は Windows 含めてテストが完走したのでサクッとマージ。次は open-uri をやっていく。
ふとしたタイミングで Amazon のムーンガンダムが suggest されて、あれ何処まで読んだっけと思い起こしてみたら 9 まで読んで止まっていた、という状態だったのでとりあえず 10-12 を買って、シリーズ購読の設定をした後 10 だけ読んだ。
自分の中で宇宙世紀は F91 の次はユニコーン、ということになっているので、ミネバの役割がいまいちピンと来ないが、こんな事もやっていたあとにユニコーン的なこともやってるんか...というあたりは勝手に保管して面白くはなっている。それにしても、相変わらずシャアっぽいキャラがいて赤いモビルスーツってのは、もはや歌舞伎の領域だと思う。