CLA 与 DCO:有何区别?

两者都表明贡献者被允许做出贡献,并且项目有权分发它。但哪一个更好呢?
310 位读者喜欢这篇文章。
A diagram of a branching process

Opensource.com

在您的开源探险中,您可能听说过 CLA 和 DCO 这两个缩写,并且您可能会说“LOL WTF BBQ?!?” 这些字母分别代表贡献者许可协议和开发者原创证书。 两者都有相似的意图:表明贡献者被允许做出贡献,并且项目有权根据其许可证分发它。 随着一些重要的项目从 CLA 转向 DCO(例如 Chef 在 2016 年末 和 GitLab 在 2017 年末),这个问题近来受到了更多关注。

那么它们是什么呢?贡献者许可协议是两种机制中较旧的一种,通常被具有大型机构支持(公司或非营利组织)的项目使用。 与软件许可证不同,CLA 没有标准化。 CLA 可能因项目而异。 在某些情况下,它们只是声明您提交的作品是您有权提交的,并且您允许项目使用它。 其他 CLA(例如 Apache 软件基金会的)可能会授予版权和/或专利许可。

开发者原创证书由 Linux 基金会在 2004 年推出。 它不是必须提交给项目的法律合同,而是一种轻量级的机制,用于声明“是的,我有权提交这个,并且我理解您将使用它。” 使用它仅需要贡献者签署 git 提交。 这种方法的倡导者认为,准入门槛较低是 DCO 的主要特点。 它不需要贡献者阅读和理解冗长的法律文件。

CLA 的倡导者表示,CLA 的存在表明该项目在治理时考虑了长期稳定性。 如果没有别的,它也暗示该项目资源充足,足以聘请律师起草 CLA,并安排专人负责确保所有贡献者都备案了 CLA。 CLA 也可能赋予项目以后重新许可作品的权利。 如果发现当前许可证不足,并且您无法联系到多年来做出贡献的数百人,这可能是一个好处。 当然,这也是一个风险,即在未来的某个时候,项目可能会朝着贡献者认为不可接受的方向发展。

那么您应该使用哪一个呢? 与许多问题(许可证、文本编辑器等)一样,答案是“视情况而定”。 如果您是诉讼的肥肉,并且想要一些掩护,那么 CLA 可能是正确的方法。 如果您想最大限度地减少贡献的障碍,同时仍然要求您的贡献者信誓旦旦地保证他们提交的是自己的作品,那么请考虑使用 DCO。 重要的事情是考虑您的项目和社区的需求,然后据此做出决定。

标签
User profile image.
Ben Cotton 是一名受过训练的气象学家,但天气是一项很棒的爱好。 Ben 在红帽公司担任 Fedora 项目经理。 他是《开源项目项目管理》一书的作者。 在 Twitter (@FunnelFiasco) 或 FunnelFiasco.com 上找到他。

评论已关闭。

© . All rights reserved.