I’m willing to help fixing some hydra build job failures but I’m facing a few problems :
- How can I find the important jobs to fix ?
- When I try to reproduce them (with the reproduce script provided by hydra) I don’t get any failure
- The reproduce scripts downloads nixpkgs each time so it’s not practical
I don’t think we really have that notion in nixpkgs anywhere. Personally, it’s “have I heard of this outside of nixpkgs”, but that obviously narrows the scope to my personal software use cases.
Hydra is prone to it’s own sets of issues. Generally these are “control plane” issues in how’s its configured. Sometimes the build was fixed, but another evaluation hasn’t completed, Hydra “lags” a bit in this regard; not sure how to fix this as hydra is essentially a batch CI/CD build tool.
Unfortunate consequence of reproducibility 
However, thanks for wanting to improve the condition of nixpkgs. I found myself doing the same thing once-upon-a-time.
Couldn’t this be handled by fetching and checking out the nixpkgs repo? The deltas should be fairly small after the first download.
Going to https://status.nixos.org/ is the best way to get started. You
can see that nixos-unstable currently is failing to build. However after
clicking the links you will find that it is an infrastructure
failure. (It
would be very helpful to fix, but I don’t know if that is what you are
looking for).
There are also non-blocking hydra failures, the best bet to find out
about that is probably reading the last call for fixes:
https://github.com/NixOS/nixpkgs/issues/97479.
Another option to help out is finding broken packages and seeing if they
are worth fixing. For example you can find a lot just using GitHub Search
or Sourcegraph.
That’s all I have on hand, hopefully it helps you get started.
2 Likes
My assumption is; when designing this feature for hydra, they didn’t want to assume the user had a local checkout of nixpkgs. And instead just wanted a one-liner
to repro the issue.
Maybe this would be improved with an alternate "within a nixpkgs repo, run this: git checkout <commit>; <cmd>
" listed as well.
3 Likes