Loading nixos/doc/manual/from_md/release-notes/rl-2305.section.xml +9 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ In addition to numerous new and upgraded packages, this release has the following highlights: </para> <itemizedlist spacing="compact"> <itemizedlist> <listitem> <para> Cinnamon has been updated to 5.6, see Loading @@ -18,6 +18,14 @@ pull request</link> for what is changed. </para> </listitem> <listitem> <para> <literal>nixos-rebuild</literal> now supports an extra <literal>--specialisation</literal> option that can be used to change specialisation for <literal>switch</literal> and <literal>test</literal> commands. </para> </listitem> </itemizedlist> </section> <section xml:id="sec-release-23.05-new-services"> Loading nixos/doc/manual/man-nixos-rebuild.xml +51 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,18 @@ </group> <replaceable>name</replaceable> </arg> <arg> <group choice='req'> <arg choice='plain'> <option>--specialisation</option> </arg> <arg choice='plain'> <option>-c</option> </arg> </group> <replaceable>name</replaceable> </arg> <sbr /> <arg> Loading Loading @@ -204,6 +216,20 @@ <command>nixos-rebuild switch</command> or <command>nixos-rebuild boot</command> remain available in the GRUB menu. </para> <para> Note that if you are using specializations, running just <command>nixos-rebuild switch</command> will switch you back to the unspecialized, base system - in that case, you might want to use this instead: <screen> <prompt>$ </prompt>nixos-rebuild switch --specialisation your-specialisation-name </screen> This command will build all specialisations and make them bootable just like regular <command>nixos-rebuild switch</command> does - the only thing different is that it will switch to given specialisation instead of the base system; it can be also used to switch from the base system into a specialised one, or to switch between specialisations. </para> </listitem> </varlistentry> Loading Loading @@ -233,6 +259,16 @@ configuration resulting from the last call to <command>nixos-rebuild switch</command> or <command>nixos-rebuild boot</command>). </para> <para> Note that if you are using specialisations, running just <command>nixos-rebuild test</command> will activate the unspecialised, base system - in that case, you might want to use this instead: <screen> <prompt>$ </prompt>nixos-rebuild test --specialisation your-specialisation-name </screen> This command can be also used to switch from the base system into a specialised one, or to switch between specialisations. </para> </listitem> </varlistentry> Loading Loading @@ -499,6 +535,21 @@ </listitem> </varlistentry> <varlistentry> <term> <option>--specialisation</option> </term> <term> <option>-c</option> </term> <listitem> <para> Activates given specialisation; when not specified, switching and testing will activate the base, unspecialised system. </para> </listitem> </varlistentry> <varlistentry> <term> <option>--build-host</option> Loading nixos/doc/manual/release-notes/rl-2305.section.md +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin - Cinnamon has been updated to 5.6, see [the pull request](https://github.com/NixOS/nixpkgs/pull/201328#issue-1449910204) for what is changed. - `nixos-rebuild` now supports an extra `--specialisation` option that can be used to change specialisation for `switch` and `test` commands. ## New Services {#sec-release-23.05-new-services} <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> Loading nixos/tests/all-tests.nix +1 −1 Original line number Diff line number Diff line Loading @@ -436,7 +436,6 @@ in { netdata = handleTest ./netdata.nix {}; networking.networkd = handleTest ./networking.nix { networkd = true; }; networking.scripted = handleTest ./networking.nix { networkd = false; }; specialisation = handleTest ./specialisation.nix {}; netbox = handleTest ./web-apps/netbox.nix {}; # TODO: put in networking.nix after the test becomes more complete networkingProxy = handleTest ./networking-proxy.nix {}; Loading Loading @@ -464,6 +463,7 @@ in { nix-serve-ssh = handleTest ./nix-serve-ssh.nix {}; nixops = handleTest ./nixops/default.nix {}; nixos-generate-config = handleTest ./nixos-generate-config.nix {}; nixos-rebuild-specialisations = handleTest ./nixos-rebuild-specialisations.nix {}; nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; }; node-red = handleTest ./node-red.nix {}; nomad = handleTest ./nomad.nix {}; Loading nixos/tests/nixos-rebuild-specialisations.nix 0 → 100644 +131 −0 Original line number Diff line number Diff line import ./make-test-python.nix ({ pkgs, ... }: { name = "nixos-rebuild-specialisations"; nodes = { machine = { lib, pkgs, ... }: { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix ]; nix.settings = { substituters = lib.mkForce [ ]; hashed-mirrors = null; connect-timeout = 1; }; system.extraDependencies = with pkgs; [ curl desktop-file-utils docbook5 docbook_xsl_ns grub2 kmod.dev libarchive libarchive.dev libxml2.bin libxslt.bin python3Minimal shared-mime-info stdenv sudo xorg.lndir ]; virtualisation = { cores = 2; memorySize = 2048; }; }; }; testScript = let configFile = pkgs.writeText "configuration.nix" '' { lib, pkgs, ... }: { imports = [ ./hardware-configuration.nix <nixpkgs/nixos/modules/testing/test-instrumentation.nix> ]; boot.loader.grub = { enable = true; device = "/dev/vda"; forceInstall = true; }; documentation.enable = false; environment.systemPackages = [ (pkgs.writeShellScriptBin "parent" "") ]; specialisation.foo = { inheritParentConfig = true; configuration = { ... }: { environment.systemPackages = [ (pkgs.writeShellScriptBin "foo" "") ]; }; }; specialisation.bar = { inheritParentConfig = true; configuration = { ... }: { environment.systemPackages = [ (pkgs.writeShellScriptBin "bar" "") ]; }; }; } ''; in '' machine.start() machine.succeed("udevadm settle") machine.wait_for_unit("multi-user.target") machine.succeed("nixos-generate-config") machine.copy_from_host( "${configFile}", "/etc/nixos/configuration.nix", ) with subtest("Switch to the base system"): machine.succeed("nixos-rebuild switch") machine.succeed("parent") machine.fail("foo") machine.fail("bar") with subtest("Switch from base system into a specialization"): machine.succeed("nixos-rebuild switch --specialisation foo") machine.succeed("parent") machine.succeed("foo") machine.fail("bar") with subtest("Switch from specialization into another specialization"): machine.succeed("nixos-rebuild switch -c bar") machine.succeed("parent") machine.fail("foo") machine.succeed("bar") with subtest("Switch from specialization into the base system"): machine.succeed("nixos-rebuild switch") machine.succeed("parent") machine.fail("foo") machine.fail("bar") with subtest("Switch into specialization using `nixos-rebuild test`"): machine.succeed("nixos-rebuild test --specialisation foo") machine.succeed("parent") machine.succeed("foo") machine.fail("bar") with subtest("Make sure nonsense command combinations are forbidden"): machine.fail("nixos-rebuild boot --specialisation foo") machine.fail("nixos-rebuild boot -c foo") ''; }) Loading
nixos/doc/manual/from_md/release-notes/rl-2305.section.xml +9 −1 Original line number Diff line number Diff line Loading @@ -10,7 +10,7 @@ In addition to numerous new and upgraded packages, this release has the following highlights: </para> <itemizedlist spacing="compact"> <itemizedlist> <listitem> <para> Cinnamon has been updated to 5.6, see Loading @@ -18,6 +18,14 @@ pull request</link> for what is changed. </para> </listitem> <listitem> <para> <literal>nixos-rebuild</literal> now supports an extra <literal>--specialisation</literal> option that can be used to change specialisation for <literal>switch</literal> and <literal>test</literal> commands. </para> </listitem> </itemizedlist> </section> <section xml:id="sec-release-23.05-new-services"> Loading
nixos/doc/manual/man-nixos-rebuild.xml +51 −0 Original line number Diff line number Diff line Loading @@ -113,6 +113,18 @@ </group> <replaceable>name</replaceable> </arg> <arg> <group choice='req'> <arg choice='plain'> <option>--specialisation</option> </arg> <arg choice='plain'> <option>-c</option> </arg> </group> <replaceable>name</replaceable> </arg> <sbr /> <arg> Loading Loading @@ -204,6 +216,20 @@ <command>nixos-rebuild switch</command> or <command>nixos-rebuild boot</command> remain available in the GRUB menu. </para> <para> Note that if you are using specializations, running just <command>nixos-rebuild switch</command> will switch you back to the unspecialized, base system - in that case, you might want to use this instead: <screen> <prompt>$ </prompt>nixos-rebuild switch --specialisation your-specialisation-name </screen> This command will build all specialisations and make them bootable just like regular <command>nixos-rebuild switch</command> does - the only thing different is that it will switch to given specialisation instead of the base system; it can be also used to switch from the base system into a specialised one, or to switch between specialisations. </para> </listitem> </varlistentry> Loading Loading @@ -233,6 +259,16 @@ configuration resulting from the last call to <command>nixos-rebuild switch</command> or <command>nixos-rebuild boot</command>). </para> <para> Note that if you are using specialisations, running just <command>nixos-rebuild test</command> will activate the unspecialised, base system - in that case, you might want to use this instead: <screen> <prompt>$ </prompt>nixos-rebuild test --specialisation your-specialisation-name </screen> This command can be also used to switch from the base system into a specialised one, or to switch between specialisations. </para> </listitem> </varlistentry> Loading Loading @@ -499,6 +535,21 @@ </listitem> </varlistentry> <varlistentry> <term> <option>--specialisation</option> </term> <term> <option>-c</option> </term> <listitem> <para> Activates given specialisation; when not specified, switching and testing will activate the base, unspecialised system. </para> </listitem> </varlistentry> <varlistentry> <term> <option>--build-host</option> Loading
nixos/doc/manual/release-notes/rl-2305.section.md +2 −0 Original line number Diff line number Diff line Loading @@ -10,6 +10,8 @@ In addition to numerous new and upgraded packages, this release has the followin - Cinnamon has been updated to 5.6, see [the pull request](https://github.com/NixOS/nixpkgs/pull/201328#issue-1449910204) for what is changed. - `nixos-rebuild` now supports an extra `--specialisation` option that can be used to change specialisation for `switch` and `test` commands. ## New Services {#sec-release-23.05-new-services} <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. --> Loading
nixos/tests/all-tests.nix +1 −1 Original line number Diff line number Diff line Loading @@ -436,7 +436,6 @@ in { netdata = handleTest ./netdata.nix {}; networking.networkd = handleTest ./networking.nix { networkd = true; }; networking.scripted = handleTest ./networking.nix { networkd = false; }; specialisation = handleTest ./specialisation.nix {}; netbox = handleTest ./web-apps/netbox.nix {}; # TODO: put in networking.nix after the test becomes more complete networkingProxy = handleTest ./networking-proxy.nix {}; Loading Loading @@ -464,6 +463,7 @@ in { nix-serve-ssh = handleTest ./nix-serve-ssh.nix {}; nixops = handleTest ./nixops/default.nix {}; nixos-generate-config = handleTest ./nixos-generate-config.nix {}; nixos-rebuild-specialisations = handleTest ./nixos-rebuild-specialisations.nix {}; nixpkgs = pkgs.callPackage ../modules/misc/nixpkgs/test.nix { inherit evalMinimalConfig; }; node-red = handleTest ./node-red.nix {}; nomad = handleTest ./nomad.nix {}; Loading
nixos/tests/nixos-rebuild-specialisations.nix 0 → 100644 +131 −0 Original line number Diff line number Diff line import ./make-test-python.nix ({ pkgs, ... }: { name = "nixos-rebuild-specialisations"; nodes = { machine = { lib, pkgs, ... }: { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix ]; nix.settings = { substituters = lib.mkForce [ ]; hashed-mirrors = null; connect-timeout = 1; }; system.extraDependencies = with pkgs; [ curl desktop-file-utils docbook5 docbook_xsl_ns grub2 kmod.dev libarchive libarchive.dev libxml2.bin libxslt.bin python3Minimal shared-mime-info stdenv sudo xorg.lndir ]; virtualisation = { cores = 2; memorySize = 2048; }; }; }; testScript = let configFile = pkgs.writeText "configuration.nix" '' { lib, pkgs, ... }: { imports = [ ./hardware-configuration.nix <nixpkgs/nixos/modules/testing/test-instrumentation.nix> ]; boot.loader.grub = { enable = true; device = "/dev/vda"; forceInstall = true; }; documentation.enable = false; environment.systemPackages = [ (pkgs.writeShellScriptBin "parent" "") ]; specialisation.foo = { inheritParentConfig = true; configuration = { ... }: { environment.systemPackages = [ (pkgs.writeShellScriptBin "foo" "") ]; }; }; specialisation.bar = { inheritParentConfig = true; configuration = { ... }: { environment.systemPackages = [ (pkgs.writeShellScriptBin "bar" "") ]; }; }; } ''; in '' machine.start() machine.succeed("udevadm settle") machine.wait_for_unit("multi-user.target") machine.succeed("nixos-generate-config") machine.copy_from_host( "${configFile}", "/etc/nixos/configuration.nix", ) with subtest("Switch to the base system"): machine.succeed("nixos-rebuild switch") machine.succeed("parent") machine.fail("foo") machine.fail("bar") with subtest("Switch from base system into a specialization"): machine.succeed("nixos-rebuild switch --specialisation foo") machine.succeed("parent") machine.succeed("foo") machine.fail("bar") with subtest("Switch from specialization into another specialization"): machine.succeed("nixos-rebuild switch -c bar") machine.succeed("parent") machine.fail("foo") machine.succeed("bar") with subtest("Switch from specialization into the base system"): machine.succeed("nixos-rebuild switch") machine.succeed("parent") machine.fail("foo") machine.fail("bar") with subtest("Switch into specialization using `nixos-rebuild test`"): machine.succeed("nixos-rebuild test --specialisation foo") machine.succeed("parent") machine.succeed("foo") machine.fail("bar") with subtest("Make sure nonsense command combinations are forbidden"): machine.fail("nixos-rebuild boot --specialisation foo") machine.fail("nixos-rebuild boot -c foo") ''; })