Overrides de Nix que se autodisuelven cuando dejan de ser necesarios

Fuentes: Nix Overrides That Expire Themselves

En cualquier proyecto que use Nix y nixpkgs es habitual añadir overrides puntuales en el flake.nix para forzar una versión de un paquete más reciente que la disponible en el pin de nixpkgs — por ejemplo, una versión concreta de yesod-form que el proyecto necesita hoy y que aún no ha sido adoptada por nixpkgs. El problema aparece semanas o meses después, cuando se actualiza nixpkgs y la dependencia ya está incluida en su versión adecuada: el override queda obsoleto en silencio y nadie avisa de que conviene eliminarlo. El artículo describe un patrón mostrado por un colega del autor que hace que el propio override anuncie su obsolescencia durante la evaluación de Nix. La idea consiste en comparar la versión del paquete en nixpkgs con la fijada en el override mediante lib.versionAtLeast y, si la primera ya es igual o superior, disparar lib.warnIf con un mensaje que indique que el override puede borrarse. El texto incluye el fragmento de Nix correspondiente aplicado a yesod-form 1.7.10 y muestra el aviso que aparece al evaluar el flake. El autor señala que la técnica no se limita a versiones: también sirve para limpiar overrides temporales introducidos cuando un paquete estaba marcado como broken en nixpkgs y vuelve a estar operativo, ya que al desaparecer la marca broken se imprime una advertencia análoga indicando que hay que retirar el workaround. En conjunto, es una forma sencilla de mantener limpio el flake.nix sin tener que revisar manualmente qué overrides han quedado en desuso.