Q: Trying to wrap my head around the differences between channels, specifically architecture-specific ones
Q: Trying to wrap my head around the differences between channels, especially architecture-specific ones. I one of my flakes, for reasons unclear to me, I have:
inputs.nixpkgs.url = "nixpkgs/nixos-22.05";
inputs.nixpkgsArm.url = "nixpkgs/nixos-22.05-aarch64";
Further, on GitHub I see branches like:
- https://github.com/NixOS/nixpkgs/tree/cachix-aarch64-darwin
- https://github.com/NixOS/nixpkgs/tree/nixpkgs-22.05-darwin
or nixpkgs-unstable-darwin-aarch64
on Hydra.
Reading about channels, I see threads like this, but it doesn’t go terribly into depth.
https://nixos.wiki/wiki/Nix_channels:
- Then, for each unstable channel (see above), a particular job at hydra.nixos.org is started which must succeed:
So does this mean that unstable
is dynamically updated to point to a new unstable any time hydra passes a specific set of tests? Is that also what happens with e.g. nixos-22.05
, just with a different set of tests?
Can someone please help confirm my understanding and fill in some blanks between the following GitHub branches https://github.com/NixOS/nixpkgs/branches/all?query=22.05?
unstable
: all packages, only small set of critical pieces must pass some set of (x86_64-linux) tests on hydrarelease-22.05
: snapshot ofunstable
about this date during which all packages (or just a bunch? some core set?) happened to be passing on x86_64-linux on hydranixos-22.05: snapshot of
unstableabout this date during which even more(?) packages than
release-22.05` were passing on x86_64-linux on hydranixos-22.05-small
: same as above, but fewer tests are run / stuff is evaluated (and cached)nixpkgs-22.05-darwin
: snapshot ofunstable
about this date during which roughly the same set asnixos-22.05
(or mayberelease-22.05
?) were passing, but on x86_64-darwin on hydranixos-22.05-aarch64
: snapshot ofunstable
about this date during which roughly the same set asnixos-22.05
were passing, but passing on aarch64-linux on hydraunstable-aarch64
: Looks like this branch is dead?
Is that roughly right? If so, what ramifications does this have for caching? If I’m on an aarch64-linux
machine, will using an nixos-22.05-aarch64
channel (as opposed to nixos-22.05
) lead to a higher proportion of binaries available at cache.nixos.org? Other than the compilation target of the binaries, are there other major differences between the packages I would get?
What about nixpkgs-unstable-darwin-aarch64
on hydra? I don’t see this branch at GitHub. Could I (and would it be wise) for me to use this somehow, as my main machine is an M1 Mac with nix-darwin? (So far I’ve been mostly using flakes with nixpkgs-unstable
, but ran across an issue with an update yesterday, so trying to learn more about channels – and overlays.)
Sorry for so many questions, thank you to so many of you for patiently teaching me.
Other reading: