Tuesday 1 May 2012

Releasing a tool open source: how-to and what license?

I get this question quite a lot, so here is my view on this.

In terms of releasing a tool or code under an Free or Open Source license, once you have decided on the licence (see below), its best to just publish the code and go from there. Since I wouldn't expect a huge amount of traffic from day one, you will have time to get all the pieces working before any major announcement.

In terms of infrastructure I would put it on GitHub since it gives you most components you need (note that GitHub doesn't have mailing lists, so you can create one at Google Groups). Btw, if the project becomes really popular, your users will start using StackOverflow.

In term of license, I guess you need to decide if you want Control or Mass Adoption.

  • The GPL will give you more control (with its viral behaviour forcing code disclosure, but preventing other cases from occurring)
  • The Apache 2.0 license will give you more adoption since there are less limitations on its use (yes it might be used by a 'closed product' but if that grows market share, is that really a bad thing?)
My preferred license is the Apache 2.0 (which is what I use) since it is simple and allows for maximum use + distribution.

The key factor to understand is that the most powerful brand in an open source world belongs to the key driving forces and the developers of an project. 

So if you continue to be the most knowledgeable part of your ecosystem, then the bigger the usage, the bigger the opportunities.