😞

RenovateでNixの更新をするときには特定の文字列がファイルに含まれている必要がある

2024/10/03に公開

先日、自作のNix overlayを作成しました。

https://zenn.dev/kawarimidoll/articles/dbc584bb549c15

これはVimの最新版をインストールするoverlayなので、Vim本体の更新に追従できるよう、flake.lockをRenovateで自動更新しようと考えました。

https://www.mend.io/renovate/

しかし、設定ファイルを正しく記述したにも関わらず、RenovateからNix関連ファイルが検出されない問題に陥っていました。

https://github.com/kawarimidoll/vim-overlay/blob/180025b0a03c38709c2caf6253e311a88cd63063/renovate.json#L10-L12

こちらのissueに問題の概要と解決策が上がっていました。

https://github.com/renovatebot/renovate/issues/29721

本記事執筆時点のバージョンでは、RenovateはNixのファイルを以下の正規表現を用いて検出しています。

https://github.com/renovatebot/renovate/blob/405ec170222740b2fd44d077275d37b4ea6124a7/lib/modules/manager/nix/extract.ts#L6

したがって、Renovateに認識されるためには、renovate.json"nix": { "enabled": true }の設定を追加するだけでなく、flake内に以下のような記述が必要です。

"github:nixos/nixpkgs/hoge"

前掲のissueにもありますが、この記述がファイル内でどういう意味を持っているかは特に見られていません。単に書かれているかどうかだけが問題になります。
ということで、以下のコメントを追加しました。

https://github.com/kawarimidoll/vim-overlay/blob/958a48b4d00a30c274c4178e6275e3e0270b5298/flake.nix#L133-L134

これにより、自動更新が走るようになりました。

https://github.com/kawarimidoll/vim-overlay/pull/8

めでたしめでたし。

Discussion