My NixOS system is using nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11", in commit bcd464ccd2a1a7cd09aa2f8d4ffba83b761b1d0e which is from last week.
The hardware.cpu.intel.npu.enable is available in the nixos-25.11 branch and hasn’t been changed since ~5 months ago.
I would expect to be able to use it due to being on the same branch and with a commit that is newer than the last change date in the module. To my surprise, the option doesn’t exist when I try to build it, I can’t find the files looking in the nixpkgs directory of my system and checking out the file in the commit gives a 404.
I think I’m missing something in the branch tagging workflow, could anyone clarify this for me? Why using a flake system with the nixos-25.11 tag doesn’t has the modules in the same remote branch (given that the commit is newer than the last change)?
The date that the file was changed is a red herring as it does not mean that it was present on the branch at that time.
The actual file was only backported to the staging-25.11 branch in the last three weeks in this PR, and staging has only just been merged into nixos-25.11 in the past few days.
if you update your flake lock file, it should work now.
No. The channel is just really a pointer to a tested commit. The change existed more than 14 hours ago, it just was not made available to users of nixos-25.11 yet.
Oh, so I guess this is what I was after for. Where can I find the current pointer that is available to be fetched by a flake NixOS system? I thought that when using nix flake update it would update nixpkgs to the latest commit in the github branch. Is that specific to nixpkgs? Since every other github repo doesn’t have a “tested commit” or infrastructure to point besides the HEAD of the remote repo.
It does. If your input is nixos-25.11 it will update to the latest commit on that branch. It is probably just a timing issue as the commit only updates periodically after tests have passed.