Migration to Trac: How some small projects balloon into massive projects when you have good intentions and you're not paying attention

Note: This is an old post in a blog with a lot of posts over a long span of time. The world has changed, technologies have changed, and I've changed. It's likely this is out of date, the code doesn't work, the ideas haven't aged well, or the ideas were terrible to begin with. Let me know if you think this is something that needs updating.

Since around July, I've been working on migrating MediaGoblin from Redmine hosted on the Foocorp servers to Trac hosted on our server. The project looked small enough initially, but then suffered from a series of complications that turned the small project into a big project that took about 6 months and involved writing about 5000 lines of code. Pretty nuts. I don't even want to estimate how many hours I spent on it. Oy.

It wasn't a terrible project, though. Parts of it were educational. I'd written scrapers in Java and Perl a long time ago, but hadn't written anything with Python, lxml, and cssselect [1]. I read through parts of Trac and Trac's db schema. I also read through Trac plugin code.

The best part about it is that it's done now. This gives the GNU MediaGoblin project more autonomy and also more flexibility for adjusting the project to meet their specific needs. That's good stuff---time for cake!

Want to comment? Send an email to willkg at bluesock dot org. Include the url for the blog entry in your comment so I have some context as to what you're talking about.