How are you going to manage the license change in external contributions that are NOT in the core of Odoo?
The guidelines for contributions has often been to develop external modules (there are about 4,000 of them). We are not going to drive the license changes of those modules, but advise their owner (or association with CLAs like OCA) to move to LGPLv3, creating a more flexible and homogenous base for the future.
How are you going to manage the license change for past external contributions that are now in the core of Odoo?
Changing the license of Odoo requires the agreement of all the copyright owners of the current source code of Odoo, because past contributions weren't submitted with a Contributor License Agreement (CLA).We reviewed the current Odoo 8.0 source code and the amount of code that was not developed by Odoo staff represents about 2% of the code base.We will do the following:
- Propose every new contributor to sign a CLA. Once the key contributors will have signed it, the code on which do not have the IP will be lower than 0.5%
- After a two months period, we will contact contributors that do not signed the CLA yet, asking them if:
- They are ready to sign the CLA or not
- If they do not agree, we will ensure that we remove their code before the release of version 9 of Odoo. (fortunatelly, we have to rewrite most modules for the new API in v9). We expect this extra effort to not be more than a few days of development.
How are you going to manage new external contributions moving forward?
We'll publish a Contributor License Agreement shortly and request that contributors sign it before accepting their contributions.It will be tightly integrated with the contribution process on GitHub, and similarly to our automatic continuous integration testing (runbot builds), the "CLA" status will be automatically indicated on each pull request. We'll publish more details on the CLA and the process soon.
When will the change be effective?
As soon as we have resolved all discussions on external contributions, we will prepare the change of license to LGPLv3 for the next Odoo version. We expect this to take a few months.
Will we be able to use AGPL modules and paid ones?
Odoo projects will be able to use AGPL modules or paid modules under proprietary licenses, but it is not possible to combine both. Combining LGLPv3 modules and proprietary modules is fine however, so we encourage current owners licensing under AGPL to move to LGPLv3 too, in order to avoid complications for end users.
Isn’t LGPLv3 designed for libraries?
While much wording of the license refers to libraries, it was not meant to be stricto sensu used in that context. And actually, Odoo is also a set of libraries: many projects use Odoo as a framework to build a customer application that fit their needs. Lastly, compared to MPL (which is similar), LGPLv3 has the benefit of compatibility with AGPL, which is important for the transition.
Will the paid modules impair open source collaboration?
We think many modules will continue with the current community development process (or the one of the OCA for OCA modules) and others will become paid ones. Everyone will be able to select the best working method for their own modules.For example, we expect OCA modules to continue being developed in open source and people will collaborate on them. It’s the same for Odoo SA’s modules that will be open source and not sold through the app store. This development process is great for: accounting localizations, improvement of existing modules (stock, MRP, etc.)For modules that are sold, we foresee that when people buy the module through the apps store, they get access on the right github branch allowing them to collaborate with the authors: get bugfixes, propose pull requests. So, selling modules does not go against collaboration, it just limits the collaboration to buyers. This development process is better for: themes (done by designers), out-of-the-box industry solutions (AdSpike), modules linked to proprietary services (delivery operator, etc.)