Eclipse开源政策系列 – 15 – 贡献调查表
原文链接:
http://wiki.eclipse.org/Development_Resources/Contribution_Questionnaire
可以使用项目管理基础设施(Project Management Infrastructure)来创建一个贡献调查表(Contribution Questionaire,CQ)。
项目中的一些贡献在被包含到某个Eclipse开源项目(Eclipse Project)之中或从eclipse.org进行发布之前,必须由Eclipse知识产权组(Eclipse Intellectual Property(IP) Team)进行评审。CQ是在Eclipse社区和Eclipse IP Team之间的主要接口。
所有贡献都需要完成一个被Eclipse 知识产权尽职调查过程(Eclipse IP Due Diligence Process)所认可的CQ。提交者们都需要非常熟悉此文档。
术语“贡献调查表(contribution questionnaire)”是指在项目中对正在进行的IP的跟踪记录。也就是说,“调查表(questionnaire)”仅仅是个开始,接下来会持续进行多个贡献调查(CQ)。
如果你不确定是否需要一个CQ,可以向项目领导层(项目领导(Project Lead)或PMC成员)、项目导师或EMO寻求指导。
Eclipse提交者们都应该熟悉如下文档:
● 提交者尽职调查指南(Committer Due Diligence Guidelines)
● Eclipse IP尽职调查过程(Eclipse IP Due Diligence Process)
● Eclipse第三方依赖政策和流程(Eclipse Policy and Procedures for Third-Party Dependencies)
初始贡献(Initial Contribution)
所有的新项目都需要在向某个eclipse.org版本控制系统(Version Control System,VSC)提交任何代码前创建一个初始贡献(initial contribution)。Eclipse IP Team将会评审你的初始贡献并且会(通过对CQ的评论来)告知你何时可以向项目的VCS中提交贡献。
注意Eclipse IP Team无法验证初始贡献的历史信息;初始贡献必须以项目代码快照的形式予以提供并且必须在经过评审后尽快地进行提交(也就是说,很不幸,旧的历史记录必须被留在后面)。
请参考“创建一个贡献调查表”(Creating A Contribution Questionnaire)。
重要贡献(Significant Contributions)
根据Eclipse IP尽职调查过程( Eclipse IP Due Diligence Process)的定义,维持在eclipse.org中的重要代码贡献需要进行贡献调查(CQ)。
所有的贡献者必须拥有签名的CLA。
请参考:处理Git贡献(Handling Git Contributions)和创建一个贡献调查表(Creating A Contribution Questionnaire)。
第三方库(Third Party Libraries)
对于项目代码直接使用的每个第三方库都需要一个CQ。如果你的代码通过其它Eclipse项目代码来间接使用了一个第三方库,你不需要该库的CQ。
如果包含如下情况,则你会需要一个CQ:
● 项目中的某个Bundle的Manifest直接引用了一个第三方库(无论是库的Bundle还是库中的一个包);
● 在项目代码中的Java类中包含了一个import第三方库的语句;
● 项目代码使用了Java反射(例如:forName(“…”))或其它方式来引用第三方库的类;
● 项目代码使用了OSGi服务(OSGi Service)来引用某个服务的特定实现;
● 项目代码调用了一个“命令行(Command Line)”工具
(译者注:关于Bundle、Manifest、OSGi Service的信息请参考OSGi相关文档)
注意这个清单并非包含了所有情况。还要注意对第三方库的CQ都是版本敏感的。也就是说对同一个库的不同版本都会需要一个独立的CQ。
这些要求对各种发布物都适用,包括里程碑和发布版。
如果子项目的发布作为父项目的汇总发布的一部分,则子项目可以由其父项目进行CQ。如果子项目选择提供一个独立发布(无论是完全独立,还是作为汇总发布的附件),则与该子项目相关的CQ都需要重新进行。注意汇总发布的 IP logs可以被合并(这由工具进行支持)。
关于“免检依赖(exempt prerequisite dependencies)”和“共事型依赖(works with dependencies)”的CQ有一些特殊情况。欲知详情,请参考Eclipse第三方依赖政策和流程(Eclipse Policy and Procedures for Third-Party Dependencies)。
附加贡献调查(Piggyback CQ)
有很多第三方库由于已经被批准在Eclipse项目中使用。其中很多库通过Orbit Project是立即可用的。由于这些库已经准许被所有的Eclipse项目所使用,因此对它们的使用必须进行跟踪。对使用的跟踪使得当发现一个未被尽职调查过程所覆盖的问题时,我们可以减轻该问题造成的影响。
在这种情况下,可以在已有的CQ之上创建一个“Piggyback”CQ。Piggyback CQ通常会很快被审批通过,因为尽职调查工作已经被完成过了。
工作流程(Workflow)
为第三方库创建CQ的工作流程从搜索已有的CQ开始。如果可以找到一个与对应库和版本匹配的已有CQ,则就创建了一个piggyback CQ。Piggyback CQ必须在它们被EMO IP Team处理之前通过该项目的项目管理委员会(PMC)审批。
如果无法找到已有的CQ,则必须创建一个新的CQ。一旦创建完成,则第三方库的源码必须附加到记录之上。PMC必须随后审批对应的记录。如果对应的项目需要启用并行知识产权流程(Parallel IP Process),EMO IP Team会对记录进行一次粗略的评审,并且如果CQ满足上述条件,则暂时性地对该第三方库的使用进行评审,而完整的评审则以并行的方式进行。
在对第三方库进行深入分析时,IP Team可能会需要你的协助。一旦对应的分析完毕并且IP Team已经作出了决策,他们会对后续工作进行安排。如果对应的库被拒绝了,则必须从项目的VCS中移除对应的库,或者部分移除。在大多数情况下这些库都会被审批通过,并在CQ中进行相关的标记。
注意,此流程可能需要花费一定的时间。所需的实际时间取决于审批队列的长度、贡献的性质和大小等各种因素。

