Hi! :D
Finding and searching through logs on Hydra can be a bit of a friction point, so I built this to provide a simpler interface to the logs.
You may know that I’ve written a small tool to collect hydra failures into CSVs, nixpkgs-failure-notify. While this has been useful, I wanted to grab the actual build logs behind each failure, but I did not feel too good about scrapping hydra to download them periodically.
Instead I started building that list on my own server, as an little experiment. Turns out that having a folder with 1500 build-logs alone was not the great, so i made a very rudimentary attempt at sorting them:
Fast forward a few month, I wanted to make a little project to clear my mind of all the stressful exam i just passed. I thought of that list i gather that was rotting on my computer, what if i pushed that little sort-stuff.py a bit more and made it public for anyone to take a look?
And here we are:
Now it does build a good chunk of nixpkgs (master), almost all packages tags that are exposed by recursionMode = "hydra", and builds on x86_64-linux. Note that i use substituters and a timeout of ~30s per derivation to make it manageable to build within a bit more than a day. I’m not exactly sure on which frequency i will put the job on as i got some more experimentation to do with it, probably 2 days to once a week.
It hit 105952 attribute paths in the last iteration, out of which 22131 where not building on my system, and 3852 were timeouts. After the classification and the filtering out of irrelevant errors (e.g. incompatible system, file required, …), I got down to a ~1300 failures list that seems exploitable.
There is a lot of I low-hanging fruits!
I also refined the grouping of failures, and it works better than i expected! You might also noticed that some of them are tracking issues (cmake minimum version or boost 1.89). If you have an idea for a new group, feel free to test with the grep mode, and open an pr to add it.
This is not a big project per say, but it’s nice to revise a bit my front end skill and trying to use the branding guidelines :o


