:orphan: Contributing to the project - FAQ ================================= Please check out our guide `contributing to the project `__. ------- - `What is a CAA? <#what-is-a-caa?>`__ - `Why a CAA? <#why-a-caa?>`__ - `Can I contribute code where I do not own copyright? <#can-i-contribute-code-where-i-do-not-own-copyright?>`__ What is a CAA? -------------- The basics are: - Crossbar.io Technologies as the project maintainer gets full rights to your contribution. - Crossbar.io Technologies assigns you back as many rights as legally possible. This means that you retain the possibility to use your contribution outside of the project. - If your contribution is added to the project, Crossbar.io Technologies agrees to distribute it under the license which applies at the time you submitted your contribution (i.e. AGPL 3.0 at the time of writing). This document closely follows a template established by the `Harmony project `__. Contributor agreements are required by almost all open source projects which are non-trivial in scope. Why a CAA? ---------- **Why do we need this agreement?** Without this agreement, you issue a license to your code to anybody who uses the project as is, i.e. under the current license. This means that the legal relationship which is established is between you and users of the project - but not with us as the project maintainers. This brings two problems with it: 1. In case of license violations by others, there is no central copyright holder to who can sue. You, or any user who has contributed, may do so, but it complicates things, and who can sue depends very much on the nature of the violation. For example, if somebody took part of the code and integrated it into a project with a different license, only the authors who contributed to that part could sue. With the assignment, Crossbar.io Technologies can sue on behalf of the project. 2. License changes would in the majority of cases require that all contributors to the project, across the entire project history, give their explicit, written consent to the change. This makes license changes pretty much impossible. If you're interested, the case of re-licensing VLC from the GPL to the LGPL is a good `case study `__. The license agreement also gives us the right to license the code commercially. This dual-licensing model was e.g. used by MySQL. This gives us is the possibility to benefit financially from the project which we started and maintain It does not take away any rights of open-source users of the project. The code is and remains available under the open source license applicable at the time of contribution. This open source license (the AGPL v3 at the time of writing) is not modified or limited in any way by the possibility of parallel licensing under a different license. So the dual license does not affect you as an open source user - but without the possibility for dual licensing, we would not have released Crossbar.io as open source. Can I contribute code where I do not own copyright? --------------------------------------------------- **What if I do not own the copyright to the entire code I am contributing?** You need to get the owner of the copyright in the other code to also sign a CAA. If you've included code from an open source project into your code (not just used a library as-is), then we can't accept this unless you do the above. This goes even if the code is licensed under the APGL or a compatible license. The reason for that is that this kills the possibility to freely re-license. Any re-licensing would be limited to APGL compatible licenses.