25 Sep 2005 bwh   » (Master)

Sodipodi / Inkscape

MenTaLguY posts about his motivations for joining Sodipodi and initializing the efforts That Which Would Become Inkscape... and asks what the motivations of the other founders were.

Well here's my story.

I had been leading a project called WorldForge for several years. I hadn't founded that project but had fallen into the project coordinator role pretty early on. Unfortunately, I can't report that we delivered very much, but I certainly learned a lot. I learned that there is a balance to be struck between creatively cool ideas and delivering something that people can actually use. I learned that success is more than just being right. I learned about the importance of communities and just plain getting along with people. I learned a LOT more...

Anyway, one day I was working on creating a map for some RPG game idea we'd had. I'd done a lot of game world mapping using a CAD program called Campaign Cartographer, and I'd wondered if there was anything equivalent in the Open Source world. As I've written about recently, I had learned that for an open source game development project, relying on proprietary tools was bad. So in searching around, I came across this SVG file format. A bit more searching and I found 'Sodipodi', the only open source editor around for that.

I downloaded Sodipodi and tried it out. It crashed. It crashed more. It crashed HARD. But SVG was TOO COOL. I joined the mailing list. I just hung out silently for a long time. My first post was about getting it a bit better tested and more robust.

For the next year or so, I strove to participate in Sodipodi as just a lowly peon. I knew I had a tendancy to get overly involved in open source projects, and definitely did NOT want yet another project with big responsibilities for so I really held myself back with Sodipodi. I thought it'd be fun to just be an ordinary user.

Meanwhile, WorldForge was not going well for me. This is a long story, but from my perspective the issue was that I'd bought a house in Oregon and this sucked a HUGE amount of my freetime away, which resulted in vast reduction of my involvement in WorldForge to the point that I wasn't able to meet my commitments, and other folks were starting to take over. Also, a lot of the friends I'd made early on in the project had left, so I felt like the project wasn't quite the same anymore. Anyway, a variety of things had made me pretty burnt out and frustrated.

Somewhere along the line here I'd gotten access to be in charge of the Sodipodi website. At the time, I figured this would be a useful exercise for just learning PHP. However, I also found myself falling into bad habits doing project coordination type stuff: Encouraging people to send in bug reports, fiddling with processes for how patches/bug reports were handled, etc. etc. The Sodipodi project experienced sort of a rennaissance; more people were getting involved, and the amount of traffic to the list was far higher than normal.

I helped develop the extension system, get some bug/feature tracking process in place, and kick around various other ideas/implementations of features. I helped with getting a massive flag clipart project started with Uraeus. Despite intending to limit my involvement in Sodipodi, I was quickly proving to me one of the *most* active members on the mailing list...

Lauris had been gone for a long time, to the point we weren't even sure if he was coming back. Mental felt we should go ahead and fork the project in order to carry it forward. However, I really didn't feel that was a good solution. Despite the difficulties we had in the project, I didn't feel I was ready to get involved with coordinating yet another big project. I figured either Lauris would come back soon, or we could just sort of push the project forward from within. I much preferred having Lauris in charge and simply being a right hand man type guy, even if Lauris wasn't really around much. I had a new house and I was very worried that all the yardwork, cores, hobbies, and so forth I was planning would take up too much of my time. Creating a successful open source project is a *lot* of work, especially if you're trying to do it from scratch. I didn't have time to run _another project_. I thought that if we just tried a bit harder we could work things out with Lauris.

I proposed that instead of forking, we try to change the model a midge, and get more directly involved in managing patches and prepping releases, *within* Sodipodi. We instituted the Hydra Release, sorted out how to branch the Sodipodi CVS, and established our own Head branch. We started folding in various patches that'd been sitting for too long, and begain doing some organized testing and preparations for a release.

From that point, I guess destiny sort of kicked in. For whatever reason, Hydra failed as a compromise and actually increased the tension . I suppose we'd expected Lauris to appreciate the help, but our expectations were far from met. I finally decided things would be easier if we split off on our own.

Having made that decision, there were several things very important to me to achieve. First, I wanted to avoid the situation of WorldForge where we had far more rough ideas than delivered code, so I really felt we needed to emphasize doing official releases of good, working, featureful code. I didn't want to go through all the stress of being a project coordinator, so strove to get Inkscape established as sort of a "headless" project. I didn't mind *doing* coordination work, I just didn't want to have that title or anything. Remebering how many patch submissions of mine that had been outright rejected, I also wanted to keep things open so anyone with a novel, clever idea would be able to get it into the codebase with minimal hassle.

Anyway, that sort of sums up my role. While I guess I'm ok as a coder, I think my role with Inkscape has been much less about coding and more just about establishing procedure and just sort of clearing the way for others to make the big contributions. I love that today Inkscape is so much a team project and that ANY of us could be hit by a bus, and the project would carry on with barely a glitch.

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!