This topic came up again in the discussion around my PR to add an explicit nixos-x86_64-linux
channel.
From my point of view, channels are also useful in a flake world, as they represent a tested snapshot of a given nixpkgs branch.
My original motivation for requesting nixos-x86_64-linux
was, that in preparation of RFC 87 nixos-aarch64-linux
had already been created. But the additional load on Hydra is something that we currently can’t manage.
My takeaway on this is that we probably should reorganize how channel builds are triggered (probably through an RFC). As far as I understand the current process, channel builds are triggered (independent of each other) by time and start from the head of the relevant branch in nixpkgs at the time the trigger occurs.
A simple but hopefully worthwhile change might be to use the -small
channel as a smoke test. Then nixos-aarch64-linux
and nixos-x86_64-linux
could both follow nixos-small
, so we would possible spare a lot of builds that never end up in a channel bump, freeing up resources for possibly faster iteration of -small
or staging-
.
In turn the nixos-YY.MM
builds would only be triggered on revisions that succeeded for both, nixos-aarch64-linux
and nixos-x86_64-linux
. Given that on a successful evaluation the matching branches are advanced in a common repo, it is easy to select the head of the lagging branch.
Given that this setup can make good use of caching, I do not expect a significant increase in end-to-end latency from commit to the channel advancing.