Contributor License Agreement (CLA): A Legal Pre-Nup for Code
A Contributor License Agreement (CLA) is a legal pre-nup for code contributions, giving the project owner clear rights to use your work. It's used by projects like Angular or Go to avoid legal ambiguity. The footgun is confusing it with the project's license.
WHY IT EXISTS: Open-source projects aggregate code from dozens or thousands of individual authors. To have the legal certainty to manage, distribute, or even re-license the combined work, the project owner needs clear rights to every contribution. A CLA provides this legal clarity upfront.
THE MENTAL MODEL: Think of a CLA as a legal pre-nup for code. Before you contribute, you sign an agreement that grants the project owner specific rights to your intellectual property. This prevents the project from being legally paralyzed years later, unable to act without tracking down every single past contributor for permission. It's about creating a clean chain of title for the project's IP.
HOW IT WORKS: When a developer submits a pull request to a project requiring a CLA, a bot typically checks if they have signed the agreement. If not, the contribution is blocked. The agreement usually grants the project a broad, perpetual, irrevocable license to the contributed code. There are two main types: Individual CLAs (ICLAs) for individuals and Corporate CLAs (CCLAs) for employees contributing on behalf of their company.
WHEN TO USE IT: Use a CLA when your project, especially if corporate-backed or aiming for long-term stability (like an Apache Software Foundation project), needs to guarantee it has the legal rights to all its code. It's critical if you might ever want to change the project's license or offer it under commercial terms.
WHEN NOT TO USE IT: For smaller personal projects, a CLA can be overkill and deter contributors. Some projects prefer a simpler Developer Certificate of Origin (DCO), which is a less formal assertion by the developer that they have the right to contribute the code. CLAs can create friction for developers wary of signing legal documents.
ONE CANONICAL EXAMPLE: The Google CLA is required for contributions to projects like Go, Kubernetes, or TensorFlow. It grants Google a copyright and patent license to the contributions, allowing Google to incorporate the code into its products and defend the project from patent litigation.
Read the original → en.wikipedia.org
Get five bites like this every day.
Tezvyn delivers a daily feed of 60-second tech bites with quizzes to lock in what you learn.