We are pleased to announce that the board of directors of Open Source Matters have approved a change of license of the Joomla Framework to the Lesser General Public License, or LGPL for short. This is an historic moment because it is a mighty step towards fulfilling Joomla’s mission to become a “platform” on which to build many types of applications.
What is the Joomla Framework?
The Joomla Framework is the next-generation code that will progressively replace the aging Joomla Platform architecture this is currently shipped with the CMS. The source code can be found on github.com.
What sets it apart from the old Joomla Platform is the way it is distributed. Composer is a relatively new dependency management system that has become extremely popular within the PHP ecosystem. Through a public registry called Packagist.org, developers around the world are able to share their code more easily than ever before. The Joomla Framework is also designed to be modular allowing the developer to pick and choose which parts of the Framework they need for a particular project. Conversely, the Platform is monolithic meaning the developer needs to include everything regardless of whether or not they need it.
What doesn’t the license change do?
It’s important to state from the outset what the license change does not do.
It does not affect the license of the Joomla CMS - it will still be released under the GPL as a completed work. However, it is worth mentioning that the CMS itself does already include LGPL libraries (among other things, supporting multi-language features) and also MIT libraries (Twitter Bootstrap and jQuery to name a few). Our project is no stranger to using other Open Source licenses.
It also does not affect the Joomla Extension Directory. You will still be required to release your extensions under the GPL in order to be listed - this position is final and will not change. However, extension developers can still use code with GPL compatible licenses by which to build their extensions (such as the LGPL, MIT or BSD licenses). This is allowed today and will continue.
What does the license change do?
Part of the target audience for the Joomla Framework is the wider PHP community - the Joomla Framework is intended to be a tool-kit of building blocks they can use to build any sort of application that they dream of - command line tools, RESTful API services or web sites dedicated to a particular function like commerce or information sharing. The problem with the GNU GPL is that it has a well known ‘viral effect’ on the code it is included with, and that scares a lot of people away. If the Joomla Framework is GPL, then any application that uses it must also be GPL and not everyone agrees it is the best license for them. As it happens, the PHP community, especially those distributing code with Composer, is made up of a mix of Open Source licenses such as Apache 2, MIT and BSD. While we do agree the GPL is the best license for our Joomla CMS, not everyone agrees that the GPL is the best for them for other applications.
Changing the license of just the Joomla Framework to the LGPL does a number of things.
First, it allows us to stay in the family of GPL licenses in keeping with our heritage as an Open Source project.
Secondly, the LGPL is still copyleft, meaning that if you distribute an application using LGPL code, you must also make the source code that is LGPL available to the end-user. It is a much stronger license compared to “permissive” licenses such as the MIT or BSD.
Finally, the LGPL allows developers to link to it without “infecting” the rest of their application. This means developers can use the Joomla Framework to build new applications released under a variety of other Open Source licenses rather than forcing them to use a license which might not be compatible with their useage.
When does the CMS get to use the Joomla Framework?
Actually, there’s already one package that belongs to the Joomla Framework in Joomla 3 today (it’s the Dependency Injection, or DI package). Because the Joomla Framework is modular, we can add small pieces of the Framework at a time (whereas upgrading the monolithic Joomla Platform has been a huge problem in the past). Plans are being made to add more to the CMS to incrementally replace the aging Joomla Platform with more modern code, but at a rate at which developers can comfortably change over. In some cases, we have to wait for a new major version where there is the potential for backward compatibility problems to be introduced.
How can I support the Joomla Framework?
There are many ways you can help the Joomla Framework team - there is much to do:
- You can help us create a fully fledged developer site for the Joomla Framework at framework.joomla.org
- You can help us put together basic “getting started with the Joomla Framework” marketing and training material.
- You can help us improve the developer documentation for each of the Framework packages.
- You can help us improve our code quality and test coverage
- You can help us plan how the Joomla Framework will eventually replace the Joomla Platform in the CMS
- You can help us design new code to solve new problems as a result of new technologies that are emerging every day.
If you can help with any of these things, or have other comments to make or questions to ask, please join us on the Joomla Framework mailing list.