Today I 'launched' the first release of an internal tool for managing our various Trac instances at work. We've been trying to keep all the projects contained in there for issue tracking and source control, and I ended up being the one administrating the whole thing. Mostly because I asked 'Hey, have you guys given any thought to version control and bug tracking?' Hopefully I can use a similar approach to get more people doing unit testing, too...
So, in order to get people off my back, I worked on a relatively small Flask application to create the database, VCS directory (with a choice of Bazaar and Subversion; no one wanted git or mercurial, though I'm liking them a lot) and finally the Trac instance.
It manages security through some Apache group files and PAM users hooked up to our central Kerberos server. I don't like having the local users, but it's less painful to manage with the web interface now. We have a CAS system that would work for this, except the Subversion and Bazaar repos require authentication, too, and the standard clients break when they hit CAS's 403 redirects. Oh well.
I might try to release the code as open source, but for now it's going to have to stay internal for a few reasons. Not to mention, some of the stuff is dependent on our environment and wouldn't move very well.
Feels good to have my first self-directed project up and going; I've finished a few other things since starting in February, but nothing where I had pretty much free reign in managing the whole project. Admittedly, a lot of time was wasted while I bikeshedded over whether to stick with Python, Ruby (with something like Sinatra rather than Rails), or try a server-side JavaScript implementation. Other than node.js, though, I couldn't find one that excited me. Most were based on the Rhino JVM implementation; it'd be cool to see some other server-side JS implementations use V8.