News for hackers. Stuff that matters.
Re:Attempting to Use GNU Guix by zaphirplane on Sunday October 20, 2019 @09:27PM (#21308650)
Something I couldn’t get about nix by skimming the documentation is how it manages application configuration. Using traditional systems when you upgrade the package responsible for the network configuration my current configuration is carried thru or merged into the new format if the package changes it’s configuration syntax. How does nixos manage /etc ?
Re:Attempting to Use GNU Guix by evil-olive on Sunday October 20, 2019 @10:28PM (#21308903)
For the majority of changes, it "just works". For example, here's the part of nixpkgs that configures wireless networking via wpa_supplicant, as well as the actual package build of wpa_supplicant:

https://github.com/NixOS/nixpkgs/blob/nixos-19.09/nixos/modu...

https://github.com/NixOS/nixpkgs/blob/nixos-19.09/pkgs/os-sp...

Because they're contained within the same git repo, if a new version of wpa_supplicant changed the syntax of wpa_supplicant.conf, the upgrade could be handled easily (assuming the user-facing options in NixOS didn't need to change).

For more complicated changes, there's `system.stateVersion`:

https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion

An example of this would be if NixOS version A ships with Postgres version X by default, while NixOS version B upgrades to Postgres version Y. stateVersion allows a sane upgrade path where you can update to NixOS version B without breaking your database immediately (because stateVersion is still A).

Re:Attempting to Use GNU Guix by takeda on Monday October 21, 2019 @10:19AM (#21312518)
Files in /etc shouldn't be modified directly. You edit configuration.nix and it generates these files.

How it is done, depends on a module.