オフィスに行っていくつかやることがあったので田町に行ってあれこれ終わらせてから何か食べに行くか、と最近商業施設がオープンしたという高輪ゲートウェイシティまで歩いて行ってきた。
田町からだと MoN というミュージアムが最寄で外観はなかなか良いな、となったけど昼飯ついでの時間で見るほどの時間はなかったのでエントランスホールだけを軽く眺めて退散。
昼食を食べるのにニュウマン高輪を歩いて眺めつつ、いつも通りビリヤニの店を見つけたのでマトンビリヤニを食べてから、再び軽く散策。365日のパンを買って帰ろうかと思ったけど店を見つける前にバーミキュラのパンを見つけたのでそっちを買ってしまった。虎ノ門ヒルズと比べると自分好みの店が多いな、って感じでまた時間を作ってゆっくり見にこようと思う。
高輪ゲートウェイ、JR の駅単独だとなんだこのデザインは、って感じだったけど商業施設とトータルで見るとそろっている外観になっていてまあまあいい建物だな、とはなった。しかし、JR 駅からの出口は屋根がないエリアなので夏は暑そうだし、雨の日は、って感じでつなげばいいのにな、とは思った。
前から書いている通り Supply Chain Attack に対する緩和策として cooldown と呼ばれるリリース直後の OSS ライブラリの導入を控えるという機能があり、RubyGems/Bundler でも真面目に考えるかと準備を始めた。
まず、今の rubygems.org が提供する情報には gemspec に含まれる date フィールドしかなく、この値は大体においてリリースした日が含まれるのだけど、任意の値も設定可能なので厳密ではない、となると rubygems.org にある DB の created_at 使う必要が出てくる。しかし今はその値を rubygems のクライアントが知ることはできないので、まずはそれをとれるようにするところから作業をしていた。
最後のやつをマージするために rubygems.org の周辺ライブラリあれこれを vendoring したり書き換えて統合するなどなんやかんやをいろんな人と連携してやっていた。
で、クライアント側の仕様をどうすっかね、というのを claude にあーだこーだと壁打ちしながら、「それは~とします、理由は~だからです」と決める業をバシバシやってドラフトを以下の discussion に投稿しておいた。
https://github.com/ruby/rubygems/discussions/9113#discussioncomment-16501550
だいたいカバーされていて過不足ないとは思うので、あとは rubygems.org からのメタデータ配信の都合に合わせて CLI も対応してリリース、って感じになると思う。
なお、上のデザインドキュメントを claude に評価させて、「これ実装できんの?」と聞いたら「rubygems.org が created_at に相当するものを配信すれば作れます」と断言したのでたぶん大丈夫だとおもう。こうご期待。
定期リリース 10 回目となる RubyGems/Bundler の 4.0.10 をリリースした。
https://blog.rubygems.org/2026/04/08/4.0.10-released.html
このバージョンもいつものようにパフォーマンス修正やちょっとした便利にする変更などを入れている。今回は微妙にコンフリクトがあって、さらに CI が落ちる(ローカルでは落ちない)みたいな厳しいやつがあったので、ちょこちょこと直していたらそれなりに時間を使ってしまった。
何かあるたびにリリーススクリプトを直してはそれを使ってリリースして、ちょっと失敗して、って感じで改善はしているのだろうけどそれなりに労力が消費されるのは難しいもんだねえ。
GitHub には .github というリポジトリを作り profile/README.md をおくと org のトップページの見た目を変える機能があるので、それを利用して ruby org のトップページを少しカッコよくしておいた。
他にも security とか funding についてもデフォルト設定を突っ込むということができるみたいだけどそれはまた後で。
RailsGirls JP の会計で使っている口座は実は法人口座でネットバンキングは専用の証明書を入れたマシンからしかアクセスできないようになっている。
で、この証明書の有効期限が切れるということで、Windows の方に専用の証明書の発行ツールを入れてから、ブラウザから証明書の取得要求をして発行ツールが動いて、という順序で新しいものに入れ替えておいた。
これでも十分に面倒なんだけど、以前はもっともっと面倒で一旦ミスると身分証明書をコピーした申請書を出さないといけない、とかだったので楽になっているとはいえる。なんかモバイルアプリもあって、そっちだともっと楽、らしいのだけどこっちはこっちで登録にミスったら PC から繋ぐアカウントも死にそうな気配があるんだよなあ。うーん。
Matz がいたので RubyKaigi 周辺の日程とか話をしつつ、笹田さんが開催するタイムテーブル眺める会に野次馬コメントをしていたらあっという間に時間切れ。2週間後には函館とか本当に早いねえ。
もう何をどれくらいメンテしているのか把握してないけど、RubyGems を GitHub と OIDC で繋いで Actions から gem push できるようにする trusted publisher を簡単に使うための release-gem workflow の 1.2.0 をリリースした。
https://github.com/rubygems/release-gem/releases/tag/v1.2.0
リリースした、と言っても workflow はタグを打つだけではある。このバージョンでは rake release を実行するディレクトリを変更可能にしているので monorepo で何かをしているような gem だと便利かもしれない。
で、その trusted publisher なんだけど、rubygems の guides としては存在するもののほとんど存在が認知されておらず、ダメだこりゃとなったので構成を大幅に見直して書き換えた。
https://guides.rubygems.org/trusted-publishing/
書き換える前は、技術的な仕組みを延々と解説していて「で、どうやれば使えるの」と言うのが後の方にある使いにくいやつだったので「いいから最初にこれをやれ!」と言うのを書いた上で、興味があればアドバンスドな使い方とか、技術的な話も読んでね、って構成にした。
これ、もっとプロモーションしたほうがいいのでその辺はぼちぼちかなあ...。