开发者证书来源

2023 年 10 月 31 日 由 Stian Thorgersen 撰写

对于任何开源项目,重要的是任何贡献都包含可以合法地贡献给项目的代码,并且该项目有权根据其许可证分发该代码。有许多方法可以实现这一点,其中两种流行的方法是开发者证书来源 (DCO) 和贡献者许可协议 (CLA)。

开发者证书来源 (DCO) 是最轻量级的方案,它要求贡献者在其贡献的一部分的单个提交上签字。这可以通过在创建提交时使用 --signoff (-s) 选项轻松完成。例如

git commit -s -m "Description of the commit"

这将在提交结束时添加一个 Signed-off-by 语句,其中贡献者证明他们正在遵守 开发者证书来源 (DCO) 中规定的协议。

另一方面,贡献者许可协议 (CLA) 是一种更复杂的方法。作为 CLA 的一部分,任何贡献者都必须在做出任何贡献之前与项目签署一份预先协议。这为贡献者设置了更高的门槛,也为开源项目带来了更高的成本,因为它必须维护一个已批准贡献者的列表以及相应的协议存档。

对于 Keycloak,我们决定使用 DCO,因为我们认为它对贡献者和维护者来说都简单得多。

如果您有兴趣了解更多关于 CLA 与 DCO 的信息,opensource.com 上有一篇关于此主题的精彩文章