The DCO vs. CLA decision comes up early in an open-source program's life, usually at the point when a project starts getting external contributions and someone from legal asks "what do we have these contributors agree to?" The answer isn't universal — it depends on what your project needs to be able to do with contributions, and what level of overhead you're willing to impose on contributors.
The short answer: DCO is appropriate for community-governed projects prioritizing contribution ease; CLA is appropriate when commercial flexibility, patent indemnification, or IP provenance for M&A matters. Many projects need the latter even when they prefer the former.
What the DCO Actually Says
The Developer Certificate of Origin (DCO) is a short statement — currently at version 1.1, maintained publicly by the Linux Foundation — that contributors add to their commits via a Signed-off-by trailer. When a contributor adds Signed-off-by: Name <email> to a commit message, they're asserting that:
- The contribution was created by them, or
- The contribution is based on previous work with a compatible open-source license, or
- The contribution was provided to them by someone who had the right to contribute it, or
- The contribution is submitted under an open-source license compatible with the project's license
Critically, the DCO is an assertion of origin — a representation that the contributor has the right to make the contribution. It is not a license grant beyond what the project's existing license already provides. The contributor is saying "I can legally contribute this"; they are not granting you any rights beyond what the project license dictates.
What a CLA Grants That a DCO Doesn't
The CLA's additional grants, compared to DCO, typically include:
A broad, irrevocable copyright license: The contributor grants you rights to use, modify, reproduce, and sublicense the contribution under terms that may be broader than the project's current public license. This is what enables relicensing — the CLA grants you rights independent of the public license.
An explicit patent license: The contributor grants a patent license covering any of their patents that would be infringed by the contribution. DCO has no patent component. In technology sectors where patent exposure is material, this difference is significant.
Employer authorization representation: CLAs, particularly CCLAs, explicitly address the work-for-hire question. The DCO includes a section covering employer-authorized contributions (DCO section b), but it relies on the contributor's assertion that their employer has authorized the contribution — without requiring employer sign-off. For corporations contributing to projects, the CCLA provides a cleaner documented authorization chain.
Relicensing flexibility: Because the CLA's copyright license is typically independent of (and broader than) the public license, it allows the project to change its public license without re-executing contributor agreements, provided the CLA's grant language covers the new license terms.
When DCO Is the Right Choice
DCO fits well when:
- The project is governed by a foundation or community body (not a single corporate entity) and is unlikely to pursue commercial licensing options
- Contribution friction is a primary concern and the contributor community skews toward individual developers rather than corporate engineering teams
- The project's license is copyleft (GPL, AGPL) and there's no intent to ever offer a permissive or commercial variant — the license itself constrains commercial exploitation regardless of contributor agreements
- Patent exposure in the project's domain is minimal or the contributors are individuals who are unlikely to hold relevant patents
The Linux kernel uses DCO. Many CNCF projects use DCO. These are projects with large contributor bases where contribution friction is a real operational concern and the project's license (GPLv2 for the kernel; Apache-2.0 or MIT for most CNCF projects) plus DCO provides an adequate governance baseline.
When CLA Is the Right Choice
CLA fits when:
- The project is sponsored by a company that may want to commercialize it (dual-license, commercial exception, or full commercial release)
- The project accepts corporate contributions and needs documented employer authorization
- The project is or may become part of an M&A target and clean IP provenance matters for due diligence
- Patent exposure is material (infrastructure, networking, cryptography, media processing)
- The organization needs to be able to enforce its copyright (pursuing infringement claims requires clearly documented rights provenance)
We're not saying DCO is legally weaker — it's a different instrument for a different use case. DCO is well-suited to community-governed projects where the goal is contribution openness. CLA is suited to company-governed projects where commercial flexibility and legal defensibility are priorities.
The Hybrid Model
Some organizations run both: DCO for small or clearly personal contributions (documentation fixes, typo corrections, minor bug patches) and require a full CLA for significant code contributions above a certain diff size or scope threshold. This hybrid model reduces contributor friction for low-risk contributions while maintaining CLA coverage for the contributions that actually carry IP significance.
The threshold for "significant" is typically defined in the project's CONTRIBUTING.md — common thresholds are patches over 20 lines of new code, or any new feature implementation. The operational overhead of a hybrid model is higher because your tooling needs to classify contributions and apply the appropriate gate.
Practical Decision Framework
Three questions to guide the choice:
- Will this project ever need to be relicensed or commercially dual-licensed? If yes, CLA. If you're certain the answer is no (and that certainty is legally sound given the project's governance structure), DCO may suffice.
- Are corporate contributors a significant part of your expected contributor base? If yes, you need a CCLA-style mechanism regardless of whether you use CLA or DCO for individual contributors. The employer-authorization chain needs explicit documentation.
- Would an IP audit of this project need to produce signed documentation from each contributor? DCO's
Signed-off-bytrailers are embedded in git history and are auditable. CLA signatures in a managed system are separately auditable. Both can satisfy "documentation exists" — the question is the form and the legal weight you need the documentation to carry.
For most enterprise-sponsored open-source projects — the kind of project where the sponsoring company has legal counsel involved in the governance — the answer is CLA, implemented with tooling that minimizes contributor friction. The friction argument for DCO is most compelling for community-governed projects where no single entity benefits commercially from the contributions.
If your organization is in the CLA category, the operational investment is in making that CLA experience as frictionless as possible: inline signing in the PR workflow, clear explanations of what the contributor is agreeing to, and a reliable audit trail that doesn't require manual assembly under pressure.