結論
devenvをflakeで使っていて、nixpkgsのパッケージが消えたというエラーが出たらnixpkgsの参照が異なる可能性がある。 devenvはdevenv-nixpkgsを前提に書かれているので、そういうエラーが発生したらnixpkgsを切り替えると解決するかもしれない。
背景
個人的なflakeテンプレートとしてscaffoldというリポジトリがあるんですが、これは定期的に自動更新してlockfileが最新になるようにした。
いつものようにnix flake initでテンプレートを引っ張ってきた時に、こんなエラーが発生した。
パッケージがrenameされたという旨のエラーなのだけど、これは2つの要素によって発生した。
まず、devenvが内部で持っている言語ごとの環境を定義するNixファイルにおいてerlnag-lsが参照されていた。 そのerlnag-lsパッケージですが、10/2に消されてerlang-language-platformの方に移動していた。
つまり、devenv側が存在しないパッケージを内部で参照していることによって発生した。
これはissueで報告されているかな、と思って探してみたけど見つからなかった。
これはおかしいな?と思い、tmpディレクトリでdevenv initして生成されたflakeファイルを開いてみると、nixpkgsの項目にgithub:cachix/devenv-nixpkgs/rollingと指定されていた。
これはcachixがdevenv向けに提供しているnixpkgsで、devenvはこれを前提にflakeを吐いているらしかった。 普通にdevenv.nixを使用しているユーザーは出会さないけど、flakeからdevenvを使用しているユーザーはnixpkgsをNixOSの方に向けていることが多いと思うので、今後も遭遇する可能性はあるなと思った。