CLA,全称 Contributor License Agreement(贡献者许可协议),简单来说就是项目接收贡献者提交的 Pull Request
之前,需要贡献者签署的一份协议,协议只需签署一次,对该贡献者的所有提交都生效。
Gitee 已原生支持 CLA 协议的管理、签署和合规审查过程。
该功能目前已面向 Gitee 上的「组织」开放,组织管理员可通过组织主页
->设置
->CLA 管理
进行 CLA 的管理。
CLA 由项目所有方自行定义,在细节上有大大小小的差异,没有统一的标准,但大致包括以下内容:
CLA 跟开源许可证不同,开源许可证也就 100 多种,CLA 那是成千上万种,每一个项目都有自己的 CLA。不过这些 CLA 之间也有共同点,因为大部分都是从 Apache 软件基金会制定的 CLA 演变过来的。其条款内容冗长,且里面涉及很多法律术语,除了律师之外,大部分普通人都很难理解这些术语代表什么意思。如果你要弄懂,可能得花时间花钱找律师咨询。
没有签署 CLA,则表示贡献者没有授权,如果企业或组织要重新签署 CLA,或更换开源许可证,又或者起诉他人侵权,总之所有需要有版权才能做的事情,那么都必须一一通知贡献者并取得对方同意。
对于贡献者较少的开源软件来说,这很容易;倘若是一些大型和长期项目,这个过程可能会耗费很长时间,因为企业或组织要找的可能不仅仅是数量众多的贡献者,还有他们的继承人。
2015 年,LLVM 社区发起了对代码进行重新授权的提案,希望能从现有的 NCSA 许可证更改为 Apache 2.0 License。六年过去了,这项工作还在进行中。LLVM 社区正在追踪一些过去的贡献者,以收集他们对协议变更的认可。目前有 94% 以上的旧代码获得重新许可的批准,预计 2023 年可以接近 100% ,届时就可以合法地变更许可证。
听起来有些不可思议,但没办法,大家都是这么做的,Mozilla 也是花了数年时间(2001-2006 年)重新授权 Firefox、Thunderbird 和相关软件。
组织管理员可通过 组织主页
->设置
->CLA 管理
进行 CLA 的管理。点击 +
后进入具体贡献者协议创建。
相关 CLA 创建选项说明如下:
点击 确定
后即创建了一份贡献者协议。
组织管理员可通过 组织主页
->设置
->CLA 管理
进行 CLA 的管理。
组织管理员可通过 组织主页
->设置
->CLA 管理
-> 相关 CLA 协议 的 查看协议
选项获得贡献者协议的签署地址。
个人用户可以通过开源组织协议签署地址进行签署,或在向开源项目提交 Pull Request 后,通过相关 Pull Request 页面访问协议签署地址进行签署。
个人用户在签署贡献者协议时,需要填写贡献者自身的姓名,并在签署邮箱下拉菜单中选择一个已绑定当前 Gitee 帐号的邮箱进行签署。完成签署后,即可继续进行相关 Pull Request 的合并沟通。