NixOS compiles some packages on update

Im on the unstable channel and updated my system the first time, since a week.
It compiled kdenlive and libreoffice.
This update took nearly 6 hours. :frowning:
Is it possible to exclude updates? Its common in other distros, like Linux Mint, that the User can select, which packages they want to update.
Is it possible to exclude updates, which would be compiled?
Why did nix compiled the packages itself? Were there no binaries in Hydra? Did the Hydra Build fail?

EDIT: I rebooted and did nix-channel --update && nix-env -u && flatpak update && sudo nix-channel --update && sudo nix-env -u && sudo nixos-rebuild switch
again, and again its compiling some programs.
It lists some packages that would be updated, but I already have those versions installed.

Most likely the build failed in Hydra. Another possibility is that the build hasnā€™t finished in Hydra.

Iā€™m on the master branch and sometimes there are large packages to compile. When that happens, I just cancel and try the update again in a day or two.

If the build failed in hydra, then the channel wouldnā€™t have advanced, would it? I hope @needsLatestPackages isnā€™t actually following master rather than an actual channel.

Not necessarily. Ideally the channel would not advance until all packages have built. But, in reality there are always some troublesome packages. If the channel were not allowed to advance until all packages build, then it may get ā€œstuckā€ for quite some time. Itā€™s a delicate balance between having as many packages as possible built, and having the channel advance at a nice pace.

A channel will only not advance if a constituent fails, but if one of the 60-80k packages fails, it will likely not cause the channel to halt.

The build completed around 7hours around (around when it was originally posted) Hydra - Build 152782310 of job nixos:trunk-combined:nixpkgs.libreoffice.x86_64-linux

Okay, so theoretically there could be some programm thats checking if all my installed packages are prebuild, before I do an update.