From NixOS Wiki
Jump to: navigation, search

When do I update stateVersion

Keep stateVersion to the version you originally installed.[1]

The system.stateVersion option is described as such:

Every once in a while, a new NixOS release may change configuration defaults in a way incompatible with stateful data. For instance, if the default version of PostgreSQL changes, the new version will probably be unable to read your existing databases. To prevent such breakage, you can set the value of this option to the NixOS release with which you want to be compatible. The effect is that NixOS will option defaults corresponding to the specified release (such as using an older version of PostgreSQL).

Frequent answers:

  • stateVersion has nothing to do with the current version of the system[2]
  • Do NOT change the stateVersion in the configuration; [it] tells nixos what version your state is; changing it will break the things [it is] meant to fix.[3]

When can I update stateVersion?

When:

  1. You have read all release notes starting from your stateVersion.
  2. You have verified all instances of stateVersion in the code in <nixpkgs/nixos>.
  3. You have made all manual interventions as required by the changes previously inventoried.

References

  1. https://logs.nix.samueldr.com/nixos/2017-12-05#745406
  2. https://logs.nix.samueldr.com/nixos/2018-04-18#1524080358-1524080429;
  3. https://logs.nix.samueldr.com/nixos/2017-10-18#1508341107-1508341130;