CLA(Contribution License Agreement)为贡献许可协议。
很多开源社区,比如CNCF,都会要求贡献者签署CLA,只有签署了CLA的贡献者提供的内容才能被接受。从开源社区角度看,如果没签署CLA,会有风险。
所谓的风险,举几个例子:
- 某公司向社区捐了一笔钱,社区拿这笔钱举办了一场会议,如果该公司对此不满,有可能会请求索回捐款,也有可能诉诸法律;
- A公司或个人向社区贡献了一个项目,这个项目被B公司拿去进行商业活动,那么A公司有可能会状告B公司侵犯其知识产权;
CLA正是为了规避诸如此类的风险而存在的,那么签署CLA对贡献者而言意味着什么呢?
简单的讲:贡献者提供的贡献(包括捐款、源代码)将授权给社区使用。
这样社区才会放心的接受贡献。
当你向开源社区贡献代码时,一般会自动检查提交者的帐户信息,以GitHub项目为例,如果没有签署CLA,提交PR请求时会被拒绝。
更详细的CLA信息,请参考cncf/cla仓库(