This release was made possible by the effort of over 2100 contributors. I want to say thank you to everyone in the community for working on this.
A highlight of the release is GNOME 45, which introduced a new image viewer and a new camera app. The GNOME team has been working on the update for the past 4 months, and the update was able to make the cut right before the release.
Another highlight is the update of the default version of the LLVM package set from 11 to 16 on both Linux and Darwin. @reckenrode has worked hard on this to make this transition as seemingless as possible.
A lot more features and improvements also made it into the release, the full list can be found in the release notes.
The 23.05 “Stoat” release is now officially deprecated, and will reach its end-of-life and stop receiving security updates after 2023-12-31. Please schedule your upgrades accordingly.
We are scheduling a retrospective for 2023-12-09. If you have something to contribute, please join the release management room, where the URL will be announced.
Those instructions are pretty much entirely wrong. They will only give you an update to the latest commit of NixOS 23.05, you will not be upgrading to 23.11. Don’t rely on LLMs for things you don’t understand yourself.
You need to start off by changing your channel, as the manual instructs.
If you’re really struggling to understand it, assuming you’re using the most defaultest NixOS 23.05, you need to run these commands:
sudo nix-channel --add https://channels.nixos.org/nixos-23.11 nixos
sudo nixos-rebuild boot --upgrade
# You probably get some errors and warnings here that you need to take care
# of, do so and repeat until the above command succeeds
sudo shutdown -r now
A reboot is required according to the release notes, which you should really take a look at before/while upgrading. Using nixos-rebuild boot should probably generally be recommended for full version upgrades, if only to prevent confusing people with graphics library failures.
YMMV, this doesn’t cover user channels, home-manager, niv, etc., but neither does the manual in fairness. We probably should have a more foolproof set of “this is how you upgrade” instructions somewhere.
Not quite, sudo nix-channel --update will update all your channels, including e.g. a home-manager channel you might have.
nixos-rebuild switch --upgrade will only update the nixos channel (and other channels that explicitly opt-in to updating when that flag is used) by default. To mimic sudo nix-channel --update exactly, you need nixos-rebuild switch --upgrade-all.
I think honestly, that your instructions are a great start.
Thanks for pointing out that the LLM was wrong, I have a very basic configuration, I think .
I added new packages only via configuration.nix, and added no further channels, home-manager, or anything of that sorts.
Still, after using NixOS for 2 months, this is the first time that I am truly stuck, and I think the documentation could definitely be improved here.
I’ve tried adding system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11"; to my config file, and it doesn’t do anything, even after sudo nixos-rebuild switch and reboot.
Is it better to do the sudo nix-channel --add https://channels.nixos.org/nixos-23.11 nixos and then sudo nixos-rebuild switch method?
To be more specific, this is what’s in my config file for auto system upgrades:
# system upgrades
system.autoUpgrade.enable = true;
system.autoUpgrade.allowReboot = false;
boot.kernelPackages = pkgs.linuxPackages_6_5; # Use pkgs.linuxPackages_6_5 if nvidia drivers fail, use pkgs.linuxPackages_latest if nvidia drivers work on "latest"!
system.autoUpgrade.channel = "https://channels.nixos.org/nixos-23.11";
Yes. system.autoUpgrade runs said updates with a systemd timer which runs once a day by default.
You’ve basically told NixOS to update your system at midnight, or whenever you next boot your computer after midnight passes. That option is intended to do the small, tedious updates on a single NixOS version where you don’t expect much breakage, not distro upgrades.
It will likely trigger a rebuild, fail, and then dump the logs into your journal, where you won’t think to read them.
While enabling that module is fine, and probably even good practice, I think I would not recommend setting system.autoUpgrade.channel, personally, unless you have a specialized use case (such as a custom nixpkgs fork with your own branching strategy). It makes it awkward to do the manual steps involved in stable upgrades.
Good tip for people who are upgrading for the first time:
If you run nixos-rebuild build-vm, (after updating your channel or flake input), you will get a script that boots your configuration in a VM, so you can make sure it works. The main catch here is that password data doesn’t get embedded, so you need something like services.getty.autologinUser = <username> if you want to do more than a boot check.