From bee0c1144e717aa457188860dc87a7867fd0cc6a Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 24 Feb 2026 21:56:32 +0000 Subject: [PATCH 1/2] nixos-rebuild-ng: make --diff works with 'dry-activate' Also make it actually a no-op with dry-build, since it breaks this specific command. --- .../src/nixos_rebuild/__init__.py | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py index baf0c57c93b2..6d4c086dbc8d 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py @@ -265,22 +265,12 @@ def parse_args( if args.no_build_nix: parser_warn("--no-build-nix is deprecated, we do not build nix anymore") - if args.diff and args.action not in ( - # case for calling build_and_activate_system - # except excluding DRY_BUILD and DRY_ACTIVATE, - # in which --diff is uniquely a no-op - Action.SWITCH.value, - Action.BOOT.value, - Action.TEST.value, - Action.BUILD.value, - Action.BUILD_IMAGE.value, - Action.BUILD_VM.value, - Action.BUILD_VM_WITH_BOOTLOADER.value, - ): + if args.action == Action.DRY_BUILD.value and args.diff: parser_warn(f"--diff is a no-op with '{args.action}'") + args.diff = False if args.action == Action.EDIT.value and (args.file or args.attr): - parser.error("--file and --attr are not supported with 'edit'") + parser.error(f"--file and --attr are not supported with '{args.action}'") if (args.target_host or args.build_host) and args.action not in ( Action.SWITCH.value, From ac1f2110139ccfb94eceae1b3b75fcf87b31eb5c Mon Sep 17 00:00:00 2001 From: Thiago Kenji Okada Date: Tue, 24 Feb 2026 23:24:33 +0000 Subject: [PATCH 2/2] nixos-rebuild-ng: also warn --diff usage for other actions --- .../ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py index 6d4c086dbc8d..b5d927c51a3c 100644 --- a/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py +++ b/pkgs/by-name/ni/nixos-rebuild-ng/src/nixos_rebuild/__init__.py @@ -265,7 +265,16 @@ def parse_args( if args.no_build_nix: parser_warn("--no-build-nix is deprecated, we do not build nix anymore") - if args.action == Action.DRY_BUILD.value and args.diff: + if ( + args.action + in ( + Action.DRY_BUILD.value, # --diff breaks dry-build + Action.EDIT.value, + Action.LIST_GENERATIONS.value, + Action.REPL.value, + ) + and args.diff + ): parser_warn(f"--diff is a no-op with '{args.action}'") args.diff = False