Re: [Nix-dev] /etc/nixos/configuration.nix not versioned?
On Fri, Sep 16, 2016 at 11:31 AM, Arnold Krille wrote: > Hi, > > On Fri, 16 Sep 2016 09:13:27 -0700 Wink Saville > wrote: >> As a newbie I was playing around and last night I rolled back to an >> older configuration and realized that the configuration.nix file >> didn't rollback. I can now realize that configuration.nix has nothing >> to do with booting or running the system and it only builds the >> system. >> >> But at the moment I have 20 variations of my system in >> /boot/loader/entries/* but only the "latest" >> /etc/nixos/configuration.nix. So how are people managing >> configuration.nix files and keeping them 'synchronized' with /boot/**/ >> in particular /boot/loader/entries/* ? >> >> What I've just done is put /etc/nixos into a git repository, but that >> puts the burden on me to keep it synchronized with the >> /boot/loader/entries. Hopefully there is a better way. > > /etc/nixos/configuration.nix (and the files included there) is the one > place that nix can not manage for you. It could save a copy somewhere > within the activated profile. But it can not modify/move the file > itself. > > Consider this: > * You have a working configuration > * You change configuration.nix > * You build the new config and switch to it (temporarily with > 'nixos-rebuilt test') > * You realize something is not working as expected and roll back to the > next older version for the moment. > Now when nixos moves the configuration for you, you will be back to the > state before you started the config changes. You have no way of going > forward again and especially no way of modifying the forward > configuration and fixing it. Because its not there anymore… Yes, I understand > > What I am doing[1] is: > * there is /etc/nixos/nixconfig/ directory which is actually a git > checkout. > * /etc/nixos/configuration.nix basically imports everything from within > that nixconfig//default.nix > * the nixconfig also has nixpkgs as submodule in git and uses that as > source instead of any channels. > > That way I have full control over which configuration should be > running. And also about which version of the nixpkgs is used. > I can run tests on the system-config before pushing the config to > master and rebuilding my server(s) into a non-working state. > I have master, staging and story-branches and can test the next > nixos-release in the tests of my systems before applying it to the > actual machines. This sounds like the direction I'd like to go. > > The combination of full system description, full control over the > package state and full testability is what makes my daily work-life > very miserable. Because I have this at home but not at work:-/ Work may be terrible, but all is well on the home front :) > > Have fun, > > Arnold > > [1] A bit outdated because my main repo is locally, but > https://github.com/kampfschlaefer/nixconfig has my systems config. Thanks I'll be looking at it. ___ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev
Re: [Nix-dev] /etc/nixos/configuration.nix not versioned?
Hi, On Fri, 16 Sep 2016 09:13:27 -0700 Wink Saville wrote: > As a newbie I was playing around and last night I rolled back to an > older configuration and realized that the configuration.nix file > didn't rollback. I can now realize that configuration.nix has nothing > to do with booting or running the system and it only builds the > system. > > But at the moment I have 20 variations of my system in > /boot/loader/entries/* but only the "latest" > /etc/nixos/configuration.nix. So how are people managing > configuration.nix files and keeping them 'synchronized' with /boot/**/ > in particular /boot/loader/entries/* ? > > What I've just done is put /etc/nixos into a git repository, but that > puts the burden on me to keep it synchronized with the > /boot/loader/entries. Hopefully there is a better way. /etc/nixos/configuration.nix (and the files included there) is the one place that nix can not manage for you. It could save a copy somewhere within the activated profile. But it can not modify/move the file itself. Consider this: * You have a working configuration * You change configuration.nix * You build the new config and switch to it (temporarily with 'nixos-rebuilt test') * You realize something is not working as expected and roll back to the next older version for the moment. Now when nixos moves the configuration for you, you will be back to the state before you started the config changes. You have no way of going forward again and especially no way of modifying the forward configuration and fixing it. Because its not there anymore… What I am doing[1] is: * there is /etc/nixos/nixconfig/ directory which is actually a git checkout. * /etc/nixos/configuration.nix basically imports everything from within that nixconfig//default.nix * the nixconfig also has nixpkgs as submodule in git and uses that as source instead of any channels. That way I have full control over which configuration should be running. And also about which version of the nixpkgs is used. I can run tests on the system-config before pushing the config to master and rebuilding my server(s) into a non-working state. I have master, staging and story-branches and can test the next nixos-release in the tests of my systems before applying it to the actual machines. The combination of full system description, full control over the package state and full testability is what makes my daily work-life very miserable. Because I have this at home but not at work:-/ Have fun, Arnold [1] A bit outdated because my main repo is locally, but https://github.com/kampfschlaefer/nixconfig has my systems config. signature.asc Description: PGP signature ___ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev
Re: [Nix-dev] /etc/nixos/configuration.nix not versioned?
On Friday, September 16, 2016 09:13:27 Wink Saville wrote: > As a newbie I was playing around and last night I rolled back to an > older configuration and realized that the configuration.nix file > didn't rollback. I can now realize that configuration.nix has nothing > to do with booting or running the system and it only builds the > system. > > But at the moment I have 20 variations of my system in > /boot/loader/entries/* but only the "latest" > /etc/nixos/configuration.nix. So how are people managing > configuration.nix files and keeping them 'synchronized' with /boot/**/ > in particular /boot/loader/entries/* ? > > What I've just done is put /etc/nixos into a git repository, but that > puts the burden on me to keep it synchronized with the > /boot/loader/entries. Hopefully there is a better way. > > -- Wink > ___ > nix-dev mailing list > nix-dev@lists.science.uu.nl > http://lists.science.uu.nl/mailman/listinfo/nix-dev A bit hacky solution: system.copySystemConfiguration = true; A more formal solution would be to version all your stuff yourself with nixpkgs as a submodule if necessary. ___ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev
[Nix-dev] /etc/nixos/configuration.nix not versioned?
As a newbie I was playing around and last night I rolled back to an older configuration and realized that the configuration.nix file didn't rollback. I can now realize that configuration.nix has nothing to do with booting or running the system and it only builds the system. But at the moment I have 20 variations of my system in /boot/loader/entries/* but only the "latest" /etc/nixos/configuration.nix. So how are people managing configuration.nix files and keeping them 'synchronized' with /boot/**/ in particular /boot/loader/entries/* ? What I've just done is put /etc/nixos into a git repository, but that puts the burden on me to keep it synchronized with the /boot/loader/entries. Hopefully there is a better way. -- Wink ___ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev