I open sourced concharto this week. As a long time consumer of open source projects it has been exciting to actually contribute to the movement.
The project page is hosted on google code here.
Here’s a summary of what I went through to make this happen.
1. The concharto atlas. My main goal is to create a comprehensive online atlas of history and happenings founded the Wikipedia community process and enabled by modern mapping web services. I believe contributors of “philanthropic information” generally want to know that their work is not going to enrich some venture capital backed startup so one way to instill confidence is to make the code open source.
2. Someone else could use it. It would be gratifying to see other concharto based communities springing up.
3. Make the code better. There are so many open source projects out there that the odds of anyone actually contributing to concharto are pretty low, but it has a few things going for it:
- the code is stable
- the code is live
- It is still an active project
The process took about 1 month and involved a number of decisions:
- Choice of an open source hosting platform
- Choice of a license
- Code cleanup
Each of these activities involved a lot of analysis and tradeoffs and I thought I would share my thought process.
Open source hosting platform
I’ve used projects that are hosted on source forge, google code, codehaus and a few others. I really like google code’s group list and issue manager, and since good issue management is more important to me than anything else, I chose google code.
I currently use Jira (an awesome commercial issue manager) and I could have gotten a Jira open source deal, but google code’s simple and snappy groups, wiki and issue manager was an unbeatable combination.
Wikipedia’s open source software hosting page was an invaluable resource.
Choice of a license
I vacillated back and forth on this issue for about three months before I finally settled on Apache License 2.0. Here again, Wikipedia has lots of good things to say. The evolution of my decision went something like this:
1. Since Concharto is a web application and not a web library, I looked at respectable web applications like Drupal, Wordpress and Wikimedia. Most of these use a Gnu Public License (GPL), which follows a copyleft model and imposes strict constraints on commercial use of the code. This seemed just fine to me.
2. After a while I got to worrying about whether I really agree with the core principals behind the GNU license. I looked at the Apache and MIT licenses, which follow a permissive model. They seemed a little too permissive since they would allow anyone to take my code and sell it if they wanted to. I decided that perhaps the Mozilla Public License, which is what Firefox uses, would be a little more restrictive, yet not as constraining as the GPL.
3. Eventually I decided that the chances of any organization actually taking my code and reselling it are pretty low and even if some company did that, I believe it would be highly beneficial for that organization to be a contributor to the project, so in the end the concharto web site would ultimately benefit. I felt that the Mozilla license was too complicated and not that much different from the Apache 2 license. I noticed that both Google’s Android and Apple’s WebKit are Apache 2 licensed, so that clinched it for me.
Having privately worked on this code for several years, I had to ask myself whether I really wanted anyone to be able to see it – warts and all. As with any software project there are good and bad parts and the desire to make the code perfect before open sourcing it was a powerful influence on me. Finally, I just changed the package naming, added the Apache Licence 2.0 license headers and let her fly. A cool eclipse plugin made adding the license headers really easy.