其他
如何成为 Apache 孵化器项目
点击上方“开源社”关注我们
| 作者:吴涛,Apache Pegasus (incubating) PPMC| 转载自:Apache Pegasus 技术专栏| 编辑:贺鑫| 设计:王福政
我们的项目是 Apache Pegasus,这是由小米公司捐献至ASF的分布式KV存储项目。想要了解更多项目内容,欢迎访问官网 。我们正在招募 Pegasus 的代码贡献者,优秀的社区贡献者最终将可以成为 Apache Pegasus 的committer 。如果有对我们感兴趣的团队或个人,欢迎联系我们,与我们共建社区~
重要提醒
如果可以的话,建议要尽早地去构建开源社区。如果前期花费精力构建好了项目的开源社区,吸引了大量积极的贡献者,会对项目的发展和可持续性大有裨益。但另一方面,没有建立社区的项目往往在后期运营和投入上会非常痛苦。这是 Pegasus 做项目过程中的一点经验。
开始
当前处于孵化器状态的项目在: 最好的Apache Incubator入门文档在:
It' s not required to have a good proposal, but having a good proposal will increase the chances of a positive outcome.申请书通常有一套既定的模板,你需要详述项目的定位和挑战,团队是否曾经有过开源经验,是否有参与Apache项目的经历等等,这些信息能有助于让社区接纳你的项目。你可以参考其他孵化中或者已毕业项目的申请书:
发邮件之前首先需要订阅general@incubator.apache.org 邮件列表,否则邮件会被卡住无法发出。跟订阅ASF的任何邮件列表一样,你可以手动发一则空邮件(随意标题,无内容)至 general-subscribe@incubator.apache.org ,该邮件组的robot会自动引导你进行订阅。
公开提案讨论
讨论通常有3个目的:1. 寻找导师 2. 接受提醒 3. 收获关注。
1. 寻找导师
想要加入 ASF 的项目(通常称作 podlings )首先需要1个champion,至少2个mentor负责作为ASF的中间人,这个人需要是 Apache Incubator PMC (简称 IPMC) 成员。IPMC 人员列表:
To enter the Incubator, your project needs a champion and at least two or threementors. These people need to be part of the Incubator PMC, which ASF Members can join just by asking.在申请书公开发布的过程中,可能会有许多慕名而来的 IPMC 自荐为 Champion 或Mentor 。他们会作为你项目的长期导师,引导你走接下来的流程。理论上,如果你希望事无巨细一一询问你的导师,那么本文后续内容你全都不用再看。你可以提早获取导师的联系方式,并时常咨询。当然如果你希望预先了解流程,请往下再阅读。
2. 接受提醒
你的提案可能会收获他人的提醒与警示。例如项目名称是否合适,项目的定位是否与已有 Apache 项目重叠,项目的第三方库 License 是否包含 GPL 等与 Apache 不兼容的开源协议等等。
3. 收获关注
A good proposal should target the wider audience and not just the IPMC. Use this time to engage and inform potential developers and users.一个好的做法是趁热打铁,在进入孵化器前,发布申请书时做项目推广,往往能事半功倍。
4. 结束讨论
讨论的结束取决于你有没有找到足够多的导师。如上所述,你必须在集齐至少2名mentors ,1名 champion 之后才能继续下一阶段。
5. 案例
Dubbo 的 Proposal : Doris 的 Proposal :( Palo 时期)
请点击这里阅读:
版权问题
Pegasus 起初不是一个从零开始编码的项目,它基于 Microsoft 研发的分布式框架 rDSN 来构建。从 "分布式框架" 这个定义理解,相信你就知道 rDSN 覆盖的内容很多,很杂,架构相对目标单一的 " RPC 框架"," Raft 框架" 要复杂的多。架构上与其说 rDSN 是 Pegasus 的第三方库,不如说 Pegasus 是 rDSN 的子模块,由此可见其复杂程度。在 Microsoft 基本停止对该框架的开源维护后,该项目由小米Pegasus 团队 fork 并维护至今,我们对其集成了大量定制和重构。
虽说 rDSN 基于MIT协议开源,但我们仍担心这个项目会影响 Pegasus 整体的版权,抑或说会违背 Apache 的开源理念。
结论
From: Justin Mclean我们得到了 Justin Mclean 的解释,他认为这么做没有问题。
To: general@incubator.apache.org
Hi,
The ASF allows 3rd party code to be included in releases. It wouldn't be part of the grant and still remain the original headers and copyright. The ASF also doesn't fork other communities code, but given this is unmaintained and no longer in active development [1] from what I can see I don't have any issues here.
Thanks,
Justin
1.
孵化器投票
Pegasus 的投票链接在:
这里展示一下其他项目的投票:
为了更好地发起号召,在投票时建议通知你的 champion 和 mentors。由他们先投一票,从而吸引关注者。又或者你可以直接让 champion 来发起投票,这样更能起个好头。
IP Clearance
投票成功后基本可以认为项目成功进入Apache 孵化器。后续的工作就是 IP Clearance ,即知识产权的合规检查。这是一个长期的工作,我们需要严格保证代码里声明了 Apache 的版权。
参考:
请点击这里阅读:
1. 授权协议
为了以合法的形式正式捐献项目到 Apache Incubator ,接下来有以下事务:1/ 如果以公司为捐献方(例如 Pegasus 背后为小米公司),我们需由公司签署 。2/ 每个 initial committer 都需要签署 ,从而获得一个 Apache 账号。
Please send only one document per email.上述文件都需发送给Apache秘书处(secretary@apache.org)。注意一封邮件只发一份文件。
参考:
2. PPMC (Podling Project Management Committee)
Pegasus 会吸纳活跃贡献的 Contributor 作为我们的 Committer ,这意味着你将被认作是 Apache Pegasus 项目的积极推动者。对长期的活跃 Committer 我们也会举荐为 PPMC 成员,这个社区职位能够对未来 Committer 的纳新具有投票权,因而其门槛通常较高。参考:3. 基础服务搭建
1/ 需要由 champion 创建一个JIRA主站,存放项目的 Issues 。Pegasus 的 JIRA站在:请点击这里阅读:2/ 同时也需要搭建孵化状态网站,这个网站会显示当前 Pegasus 的孵化进展,记录我们开源的重要时间点,例如新 committer 的加入,例如版权检查的完成时间。
3/ 每个 Apache 项目都会有多个邮件列表,这样后来者也可以检索邮件列表了解状况。你可以通过网页 完成对 Pegasus 项目邮件列表的订阅。对于 Pegasus,来自社区的贡献者们可以订阅 pegasus-commits(commits@pegasus.incubator.apache.org) 与 pegasus-dev(dev@pegasus.incubator.apache.org)两个邮件列表。注:在项目孵化阶段,为了使所有的讨论能被所有人看到,Pegasus 只使用 dev 和commits 两个邮件列表,这样会更方便社区的壮大。结语
*本文图片来源网络,如有侵权请联系删除!
开源社简介
开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。
相关阅读 | Related Reading
中国开源年会暨阿帕奇中国路演内容全集中!
2020年开源之星 & COSCon 之星
SegmentFault 思否联合开源社共同推出中国开源先锋 30 人评选
点击阅读原文,查看知乎原文!