Builds are done by hydra. Hydra periodically builds most easily reachable packages from nixpkgs. When enough packages build correctly, that commit becomes the new xxx channel. Depending on the channel, the subset of required packages is different.
To inspect build state for a given package, you can search it in hydra. Searching for onedrive you get plenty of job and builds corresponding to that.
Lets look at the nixos:trunk-combined entry because the only other nixos-related entry is staging, which does not update any channel (it’s kind of an integration branch for large changes).
There you see that the package was in pain, and failed for some time before being fixed on the most recent build. An you can also see that 2.3.13 wa only available in the last two builds. Looking at [the oldest one] you see that it failed because the dependencies llvm and dmd failed, and so the build of that package was not attempted.
Back to the most recent build:
You see that the changes between this build and the previous build consist in a bump of the nixpkgs revision from e59dcf to 766b78
. To expand that 766b78
, go to the inputs tab where the revision is spelled out entirely: 766b78841f2342e325e0d801c01ab9d652150a67
Now, on that commit I can guarantee you that you will have a cached version of onedrive, because as you see it has already been built by hydra. You could also find it for other commits, because
- there usually is a span of commits that describe the same package (when the changes are irrelevant to that package)
- Other projects than nixos:trunk-combined may build that package at different revisions in nixpkgs.
Looking at the trunk-combined jobset, we see that it made its way through nixpkgs commits:
The commits listed here match exactly what you have found in the channel history, except for the last one which, as we know now, is the only one that matters to you. 766b78841f2342e325e0d801c01ab9d652150a67
will become the new channel when the evaluation finishes. You can wait a bit, or force your rebuild commands to use that commit. It’s up to you. The good news is that you already know that your package is part of the happy +24
packages that failed before but work now .