||[Feb. 2nd, 2010|02:15 pm]
Will Woods, Fedora Testing Guy
discussed at FUDCon, I've been working on a automated test to perform dependency checks for new package builds/updates, so we stop having broken As |
I've been working on it for a couple weeks now, and spent a while writing code to manually examine all the PRCO (
Obsoletes) data for new packages and compare it to the previous version of that package. It's been a helpful exercise for straightening out in my mind how dependency resolution works, and what kinds of changes we need to worry about. For example, it's basically harmless for a new package to
Provide something new, but a new
Requires entry will cause problems if there isn't a matching
Provide somewhere in the repos. That kind of thing.
But now I've realized that I'm really just rewriting the depsolving algorithms already in
yum, and trying to ensure that my version of the algorithm is complete and correct would be really complicated and painful. So with some help from skvidal and geppetto (thanks, guys!) I've managed to rewrite it as an extension of the existing
yum objects - and it seems to be working (yay!) and typical runs take 15-20 seconds, which makes it feasible to run this test for every new build and update (double yay!).
I still need to write some proper test cases to ensure everything is working as expected, but hopefully I'll have some good news on that front in the next week or two.
..On the other hand, my wife and I are heading to New Orleans this weekend. We were just going for the various Mardi Gras parades but, uh, now there's this whole Super Bowl thing going on? And it's the first time the Saints have ever been in the Super Bowl and basically the entire town appears to be going completely bonkers. Schools are cancelling classes, trials have been delayed, thousands of men in dresses and parading through the streets, dogs & cats living together, mass hysteria, &c.
So if you don't hear from me for a while, well.. I'm sure I'll be drawn back to the incredibly exciting world of RPM dependency checking in due time.