From 8e732cfac1e99dd53822c4e536d09e242ef9fd2a Mon Sep 17 00:00:00 2001 From: Matt Sturgeon Date: Fri, 28 Mar 2025 04:41:55 +0000 Subject: [PATCH] flake/dev: rename `nixpkgs` input to avoid shadowing Rename `inputs.nixpkgs` to `inputs.dev-nixpkgs` to avoid shadowing the root flake's `inputs.nixpkgs`. Having the dev flake shadow an input can be confusing, since overriding the root flake's input will have no effect when evaluating outputs that depend on the dev partition. The only reason we specify a `nixpkgs` input at all here, is so the other inputs can follow it. Once nix 2.26 is more prevalent, we can follow the root flake's inputs using a `"path:../.."` input. --- .github/workflows/update.yml | 2 +- flake/dev/flake.nix | 15 +++++++++------ 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml index c29e0233..31c75141 100644 --- a/.github/workflows/update.yml +++ b/.github/workflows/update.yml @@ -126,7 +126,7 @@ jobs: root_nixpkgs=$(nix eval --raw --file . 'inputs.nixpkgs.rev') old=$(git show --no-patch --format=%h) nix flake update --commit-lock-file \ - --override-input nixpkgs "github:NixOS/nixpkgs/$root_nixpkgs" \ + --override-input 'dev-nixpkgs' "github:NixOS/nixpkgs/$root_nixpkgs" \ --flake './flake/dev' new=$(git show --no-patch --format=%h) if [ "$old" != "$new" ]; then diff --git a/flake/dev/flake.nix b/flake/dev/flake.nix index dd213905..3390398c 100644 --- a/flake/dev/flake.nix +++ b/flake/dev/flake.nix @@ -2,33 +2,36 @@ description = "Private inputs for development purposes. These are used by the top level flake in the `dev` partition, but do not appear in consumers' lock files."; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + # NOTE: Use a different name to the root flake's inputs.nixpkgs to avoid shadowing it. + # NOTE: The only reason we specify a nixpkgs input at all here, is so the other inputs can follow it. + # TODO: Once nix 2.26 is more prevalent, follow the root flake's inputs using a "path:../.." input. + dev-nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager = { url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "dev-nixpkgs"; }; nix-darwin = { url = "github:lnl7/nix-darwin"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "dev-nixpkgs"; }; devshell = { url = "github:numtide/devshell"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "dev-nixpkgs"; }; treefmt-nix = { url = "github:numtide/treefmt-nix"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "dev-nixpkgs"; }; flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; git-hooks = { url = "github:cachix/git-hooks.nix"; - inputs.nixpkgs.follows = "nixpkgs"; + inputs.nixpkgs.follows = "dev-nixpkgs"; inputs.flake-compat.follows = "flake-compat"; }; };