Latest News

Licenses posted 17 May 2012 23:02 by Andrew Williams

A large part of open sourcing any project is the decision of what licence to use. Apache, GPL, MIT, Eclipse, the list goes on. Each license has it's own features and drawbacks and I'm not going to list them here, that should be an exercise for the reader - but which is the best license to use? There is no right answer to that question and every project has different needs, requirements and aspirations so pick what makes sense for you and the community you want to attract.

Coming back to HeadsUp Development and our choice for AGPL v3 when releasing HeadsUp Agile why did we pick this license? Why not a more permissive license and why not a more Java oriented license? First thing's first - we have spent 3 years developing the HeadsUp Agile product and nearly 2 years building a brand around trusted software to aid software development teams and we want to maintain ownership of the project. This meant picking a license that did not allow people to take the code, modify the branding, and release it under their own name without our permission. This limited our choices somewhat as with MIT and Apache licenses we would lose that control.

Next up was the Eclipse license which only allows commercial distribution if the code is un-modified. Not bad, but any derivative works would need to be eclipse too and a pro version would be a derivative work.

And so we get to the root of the matter - we wish to continue our Agile Pro product which is to be based largely on the free version. Without a permissive license (which allows anyone to do this) we are stuck between a viral license and a closed code base. Dual licensing to the rescue, allow access to the code using an open and a commercial license. Through the use of a contributor agreement we can maintain the right to republish the code as a commercial product whilst keeping the majority of the code free.

With a contributor agreement in place we should choose a license that best maintains the freedom of the code we have given to the community. The GPL is an obvious choice as it famously enforces the openness of code and derivatives but as we are developing a network based application delivered over the web there is an additional issue. The GPL does not consider installing an app on a server which serves customers as distribution so the code could still be modified and sold online without contributing back the changes. For this reason we went with the AGPL which does not allow this - allowing access to your server running HeadsUp Agile requires that any modifications to the code be shared under the AGPL license too.

We hope that explains out decision - we certainly don't want to get in the way of openness and derivatives but we do want to reserve the right to base our products on the code we have shared.