注:本文仅使用于Apache项目。
当您想要为DolphinScheduler(亦或其他Apache项目)增添一个新的功能,这个功能涉及到其他开源软件的引用,那么您必须注意,目前Apache项目支持遵从以下协议的开源软件(如果有遗漏,欢迎补充):
如果您所使用的第三方软件并不在以上协议之中,那么很抱歉,您的代码将无法通过审核,建议您找寻其他替代方案。
另外,当您需要使用新的软件的时候,请将您这样做的原因、最终产出结果发邮件至dev@dolphinscheduler.apache.org讨论,当得到至少3票PPMC认同的时候,您方可以引入。
以Apache为例,当我们使用了ZooKeeper,那么ZooKeeper的NOTICE文件(每个开源项目都会有NOTICE文件,一般位于根目录)则必须在我们的项目中体现,用Apache的话来讲,就是”Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work.
关于具体的各个开源协议使用协议,在此不做过多篇幅一一介绍,有兴趣可以自行查询了解。
当我们需要添加新的Jar或其他外部资源的时候,我们需要按照以下步骤:
- 在known-dependencies.txt中添加你所需要的jar名称+版本。
- 在dolphinscheduler-dist/release-docs/LICENSE中添加相关的maven仓库地址。
- 在dolphinscheduler-dist/release-docs/license/下添加相关源代码的协议,文件命名为license+文件名.txt。