Динамическая версия в Nix: как не править default.nix руками

В Nix версию пакета нужно жёстко прописывать в коде деривации — как в package.json. При частых релизах ручное обновление default.nix превращается в рутину. В Replit решили задачу: используют короткий SHA коммита (7 символов) как версию и генерируют её автоматически.
Идея простая: Nix — полноценный язык, значит можно вызвать runCommand и внутри выполнить git rev-parse --short. В стандартной библиотеке Nix уже есть похожий пример — осталось адаптировать под свой workflow.
Такой подход даёт гибкость: каждый билд получает уникальную версию без правок в репозитории. Удобно для CI и ондеманд-сборок. Важный нюанс: версия в имени деривации должна начинаться с цифры — иначе Nix ругнётся.
Источник: Dynamic version for Nix derivations (Replit Blog)