From 8a4105cfd7a6f58bf88a5f9e71dd1754f0996b36 Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Thu, 28 Nov 2024 18:08:43 +0000 Subject: [PATCH] nixos-rebuild-ng: update README.md --- pkgs/by-name/ni/nixos-rebuild-ng/README.md | 27 +++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/README.md b/pkgs/by-name/ni/nixos-rebuild-ng/README.md index f34c3d4996ef..c52d1c06d920 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/README.md +++ b/pkgs/by-name/ni/nixos-rebuild-ng/README.md @@ -97,18 +97,8 @@ ruff format . version (the one that will be switched) and re-exec to it instead. This means that in case of bugs in `nixos-rebuild-ng`, the only way that you will get them fixed is **after** you switch to a new version -- `nix` bootstrap is also **not** implemented yet, so this means that you will - eval with an old version of Nix instead of a newer one. This is unlikely to - cause issues, because the build will happen in the daemon anyway (that is - only changed after the switch), and unless you are using bleeding edge `nix` - features you will probably have zero problems here. You can basically think - that using `nixos-rebuild-ng` is similar to running `nixos-rebuild --fast` - right now - Ignore any performance advantages of the rewrite right now, because of the 2 caveats above -- `--target-host` and `--build-host` are not implemented yet and this is - probably the thing that will be most difficult to implement. Help here is - welcome - Bugs in the profile manipulation can cause corruption of your profile that may be difficult to fix, so right now I only recommend using `nixos-rebuild-ng` if you are testing in a VM or in a filesystem with @@ -118,7 +108,7 @@ ruff format . ## TODO -- [ ] Remote host/builders (via SSH) +- [x] Remote host/builders (via SSH) - [x] Improve nix arguments handling (e.g.: `nixFlags` vs `copyFlags` in the old `nixos-rebuild`) - [ ] `_NIXOS_REBUILD_EXEC` @@ -127,11 +117,20 @@ ruff format . `system.switch.enableNg` for `switch-to-configuration-ng` - [ ] Improve documentation - [x] `nixos-rebuild repl` -- [ ] `nix` build/bootstrap - [ ] Generate tab completion via [`shtab`](https://docs.iterative.ai/shtab/) - [x] Reduce build closure ## TODON'T -- Reimplement `systemd-run` logic (will be moved to the new - [`apply`](https://github.com/NixOS/nixpkgs/pull/344407) script) +- Reimplement `systemd-run` logic: will be moved to the new + [`apply`](https://github.com/NixOS/nixpkgs/pull/344407) script +- Nix bootstrap: it is only used for non-Flake paths and it is basically + useless nowadays. It was created at a time when Nix was changing frequently + and there was a need to bootstrap a new version of Nix before evaluating the + configuration (otherwise the new Nixpkgs version may have code that is only + compatible with a newer version of Nix). Nixpkgs now has a policy to be + compatible with Nix 2.3, and even if this is bumped as long we don't do + drastic minimum version changes this should not be an issue. Also, the daemon + itself always run with the previous version since even we can replace Nix in + `PATH` (so Nix client), but we can't replace the daemon without switching to + a new version.