BrewPi Contributor License Agreement
Every contributor of non-trivial amounts of code (more than just a line or two) to BrewPi will be required to sign a Contributor License Agreement (CLA). If somebody is unable to sign the document, their contribution (whether it be code, or documentation or string translations) will need to be removed from BrewPi.
Why is a signed CLA required?
The license agreement is a legal document in which you state you are entitled to contribute the code/documentation to BrewPi and are willing to have it used in distributions and derivative works. This means that should there be any kind of legal issue in the future as to the origins and ownership of any particular piece of code, BrewPi has the necessary forms on file from the contributor(s) saying they were permitted to make this contribution.
The CLA also ensures that once you have provided a contribution, you cannot try to withdraw permission for its use at a later date. People and companies can therefore use BrewPi, confident that they will not be asked to stop using pieces of the code at a later date.
Being able to make a clear statement about the origins of the code is very important as BrewPi is adopted by large organizations who are necessarily cautious about adopting products with unknown origins. We wish for BrewPi to be used and distributed as widely as possible and in order to do this with confidence, we need to be sure about the origins and continuing existence of the code.
Am I giving away the copyright to my contributions?
No. This is a pure license agreement, not a copyright assignment. You still maintain the full copyright for your contributions. You are only providing a license to BrewPi to distribute your code without further restrictions.
What about if I do BrewPi development as part of my job?
If any of your contributions to BrewPi are created as part of your employment by somebody else, the work might not actually belong to you. It may be owned by your employer. In that case, your employer, or somebody able to represent the company as far as licensing goes, needs to sign the corporate version of the Content Licensing Agreement in order for that contribution to be accepted into BrewPi. They will need to include the names of any developers (you and any others covered by that agreement) who are able to submit contributions on behalf of the employer. That list can be updated as new people are employed or others leave.
You should also still sign an individual CLA in that case. Not all the work you do will necessarily belong to your employer and we still need permission to license your individual contributions.
If you have signed an individual CLA, but not a corporate one, be very careful about submitting contributions you have made. We cannot accept anything that you do not have the rights to license in the first place and that includes code that belongs to your employer. Similarly, if you are a consultant who may be creating BrewPi patches as part of a job, make sure you and your employer understand who owns the rights to the code. Only submit things that you are entitled to. The CLA is a legal declaration by you that you have the right to grant such a license for your contributions. It is up to you to make sure that is true.
Can I withdraw permission to use my contributions at a later date?
No. This is one of the reasons we require a CLA. No individual contributor can hold such a threat over the entire community of users. Once you make a contribution, you are saying we can use that piece of code forever.
Can I submit pull requests without having signed the CLA?
No. We will be asking all new contributors and code submitters to sign before they submit anything substantial. Without a signed CLA we will be unable to merge your pull request.
Trivial patches like spelling fixes or missing words in the documentation won’t require an agreement, since anybody could do those. However, almost anything will require a CLA.
So where do I sign? What’s next?
You can fill in the form below to sign the CLA. For the corporate CLA, click here.
The content of this page has been adapted from the Django CLA FAQ and is licensed under the Creative Commons Attribution 3.0 License.