As 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 Rawhide/updates/updates-testing repos.

I’ve been working on it for a couple weeks now, and spent a while writing code to manually examine all the PRCO (Provides, Requires, Conflicts, and 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 RPM and 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.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s