When a project receives a contribution, it must be clear that both the contributor has the rights to contribute the content, and that the project then has the rights to use and otherwise operate with the content (e.g., relicense or distribute). A Contributor License Agreement (CLA) is a legal document establishing these rights and defines the terms under which a license is granted by a contributor to an open source project. A CLA clarifies that any contribution was authorized (not contributing someone else’s code without permission or there is a legal authority to contribute), and protects the project from potential future legal challenges. Not all projects will require a CLA but should one be required to contribute to a project, you will likely be asked to sign an Individual Contributors License Agreement or Corporate Contributor License. The most common CLA text is based on the Apache Software Foundation’s CLA and most CLAs will follow its template.
We choose not to utilize CLAs on our own <COMPANY_NAME> open source repositories. For more on the history and rationale behind that, check out https://ben.balter.com/2018/01/02/why-you-probably-shouldnt-add-a-cla-to-your-open-source-project/.
An Individual Contributor License Agreement (ICLA) is an agreement between a contributor solely (not in an employment capacity) and the project asserting the sole individual has the authority to contribute. Any employee executing an ICLA is doing so in their own personal capacity and not as part of <COMPANY_NAME>. As such, the ICLA will follow you should you leave <COMPANY_NAME>. Due to obligations of professional responsibility, attorneys for <COMPANY_NAME> cannot advise individuals on contracts executed in a personal (non-employee) capacity.
That said, employees have the benefit of having OSPO and Legal as resources so please use us! CLAs are binding agreements and as a precaution, should be reviewed. Further, if you are contributing as a <COMPANY_NAME> employee, a representation in an ICLA that <COMPANY_NAME> has given you permission to contribute is needed. Section 4 of the Apache ICLA makes the representation that the contributor has permission from their employer (<COMPANY_NAME>) to submit code owned by them and says:
If any third party (such as your employer(s)) has rights to any portion of any of Your Contributions, you represent that such third party has authorized your submission of such Contributions or that such third party has waived such rights for such Contributions.
As long as the ICLA is approved by <LEGAL_CONTACT>, <COMPANY_NAME> is okay with individuals who work at <COMPANY_NAME> executing ICLAs and making the representation above.
A Corporate Contributor License Agreement (CCLA) is an agreement between a corporation and a corporation. OSPO and Legal does not support proceeding with a CCLA and encourages contributors to instead proceed with an ICLA. If you wish to proceed with a CCLA, you as the contributor will be responsible for maintenance of the CCLA. This includes adding and removing of contributors when needed. Feel free to reach open an issue in this repo for further guidance on CCLAs.
Generally, if your contribution constitutes as a small code contribution, you do not need a CLA. <COMPANY_NAME> defines a small code contribution as a bug fix, or trivial patch.