29日でもなんでもないけど、tDiary 5.4.0 をリリースした。
https://tdiary.org/20250613.html
前回のリリースが 2024 年の1月で、そこから Rack 3.1 対応をガチャガチャやって今に至る、という状態でなんとかまともに動くという状態になったのでリリースしてしまった。
1年ぶりにリリースをしてみると、手順書があっても途中でエラーが起きて失敗したり、releases
は手で作らないよね...みたいなものがたくさんあるので、この辺を整備するのと Ruby 3.5 で消す予定の CGI 周りの対応をしてから 5.4.1 を出す予定
tDiary が提供している docker image がいつの間にか arm64 になってしまって、手でやっていたらいかんなとなったので GitHub Actions で作るようにした。なお、copilot agent に命令して9割を作らせた。
https://github.com/tdiary/tdiary-core/blob/master/.github/workflows/build-image.yml
作らせている中で、docker/metadata-action
という見慣れない step を使っていて、なんだこれと思ったら git の tag などを受け取って docker でよくある 5.4.0 を 5 と 5.4 にも分解するというやつだった。
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
一見便利そうなんだけど、バージョンの分解が semver 準拠らしく、v5.4.0.beta1
みたいな RubyGems でよく使われるバージョンは invalid で分解できないという最悪な感じだった。v5.4.0beta1
とか v5.4.0-beta1
などは分解できるらしいけど、逆にこっちは RubyGems では invalid っていうね。本当に地獄。
上にある type=ref,event=tag
で v5.4.0.beta1
というタグを強引に追加はできるけど、vがいらないんだよなあ...。正規表現マッチで独自に分解すればなんとかなりそうなので、その辺はまた今度。
自動車税に続いて固定資産税の納税通知が来ていた。
ただ振替設定しているところからこの金額を振替するしますね、という内容のみで自動車税みたいに実際に支払うというアクションがなくて少し寂しいというよくわからない感じになった。
このタイトルがすでにジャーゴンすぎるけど、44歳になった。妻と 45 じゃないの?とか話していて「あれ、そうだったっけ...」となって自分でも自信がなくて笑ってしまった。去年は何をしていたっけと日記を読み返したらフランクフルトに行ってたようだった。
年は重ねているけど元気といえば元気で無限にゲームをプレイする日々なのは幸いな気がする。ただ老眼というか目だけは悪くなる一方で、最近はメガネをかけないと道を歩いてて見かける文字も見えないってレベル。こればかりはどうしようもないよなあ。
いつものやつはこちら: http://amzn.to/hsbt_wl
引き続き手元にある小物を gem にするシリーズ、自分は lib
の下に C 拡張を入れるというのが本当に害悪しかないと思っていて2年くらい消し続けて暮らしているんだけど、それを簡単に実行するスクリプトを gem sweep
として実行できる gem を作った。
https://github.com/hsbt/gem-sweep
他にも、--aggressive
というオプションをつけると test ディレクトリなども全部まとめて消してくれるので、とにかく docker image などを軽くしたい、という人には便利かもしれません。
ただ、微妙に lib
の下にある C 拡張をハードコードして ffi で呼んだりするやつが壊れるかもしれないので、その辺は自己責任で使ってください。本当に行儀が悪いと思う。
シリーズ購読で配信されたので読んだ。月刊で読んでいた時よりも、ストーリー全体を追うのが難しくて今何を目標にしつつ、葛藤はなんなんだっけ...、となることが多かった気がする。
他の漫画も含めていつものことながら数巻遡るなどして流して読む必要があるって感じ。
AWS の中の人から net/http
が Content-type を指定しないときに application/x-www-form-urlencoded
が指定されてしまうので、AWS のサービスの中で受け付けないものがあって困っているという報告があり、AWS ではそのために aws-sdk でモンキーパッチを当てているとのことだった。
RFC などでは別につけなくても良いということになっていて、開発者会議でそれなら外してみるかね、となったのでデフォルト値は何も設定しないようにした。
https://github.com/ruby/net-http/pull/207
最初雑に外したらテストが通らなくて、後で、ってしたのだけど、ちゃんと眺めたらテストサーバーでクライアント側が指定した Content-type をエコーで返すようにしたのは自分だったわ、というのを思い出して書き直したらテストは難なく通るようになった。
次の preview リリースには含まれると思うのでなんか踏み抜いた人は教えてください。
macOS 26 の環境設定をちまちまとやっていて、相変わらずの Ruby ビルドチャレンジをしていたら Ruby 1.8 はビルドできるのに 1.9 と 2.0 だけビルドできなくてなんだこれ、と調べて強引にビルドできるようにした。
https://github.com/hsbt/old-ruby-build/commit/03100a3bfecb3c3f2b84fdfaafe1c53f903b84ae
どうやら Xcode 26 beta で上記のシンボルの扱いが変わったらしいけど、objc はもうあってもないようなものなので ldflag への追加を消したらなんとかなってしまった。
macOS のアップグレードなどをすると GEM_HOME を共有して使っていたり、ruby-dev
みたいに毎回上書きしてインストールするようなケースで入れた C 拡張の互換性が壊れてインストールし直し、というのが毎回だるいので手元にある秘蔵のスクリプトを gem repair
と呼べるようにしたものをリリースしておいた。
https://github.com/hsbt/gem-repair
使い方はそのまま gem repair
と呼ぶだけで壊れている C 拡張を復旧してくれるので大変便利。世界で僕を含めても 3 人くらいしか必要ないような気もするけど、動かないとかあったら教えてください。