Cleaning up the history of a project (Things you need to do on really long-running projects...)

I spent much of yesterday (when I wasn't trying to recover from multiple caffeine-driven nights this week and last) working on code cleanup for Cinemon. Cinemon is a rather old project, having had 3 or 4 major revisions (despite the 2.0 version number). The current code-base started off as a spike test to rewrite the core code using Twisted, a little subpackage that eventually swallowed all of the functionality from the rest of the project.

Similar things have happened to PyOpenGL over the years, it's had 3 major incarnations, the original hand-crafted code, Tarn's SWIG-with-extensions stuff, and now OpenGL-ctypes. Luckily, each of those projects has been its own CVS project, though the SWIG version has a rather unhappy number of branches (mostly because of the abortive 2.1 cleanup attempts).

You get to a certain point in these big projects and you want to start refactoring heavily. You want to rip out the older code that's getting in the way of new development. You want to make the codebase easier to understand, better documented, and easier to work with for new coders. But you have to remember not to break everything at once when you do it, or the whole edifice crumbles and the rewrite takes forever... beware the lure of beauty in the face of function.

Which reminds me, didn't get any thesis work done yesterday. I think I'll try to borrow Rose's laptop and hit Linux Caffe to do some writing.


Comments are closed.


Pingbacks are closed.