如何成为 Apache 孵化器项目

| 作者:吴涛,Apache Pegasus (incubating) PPMC

| 转载自:Apache Pegasus 技术专栏

| 编辑:贺鑫

| 设计:王福政

或许是我的检索能力有限,我没有在中文网络上找到一份把自家项目捐献至 Apache 孵化器的“攻略”或者“手册”。这可能是由于大家已经轻车熟路,又或者是人们对此还十分陌生。本文适合那些正在准备加入 Apache 孵化器的,和那些正在犹豫是否加入的人来阅读。希望对那些像我一样不熟悉流程的国人有所帮助。

我们的项目是 Apache Pegasus,这是由小米公司捐献至ASF的分布式KV存储项目。想要了解更多项目内容,欢迎访问官网 pegasus.apache.org/。我们正在招募 Pegasus 的代码贡献者,优秀的社区贡献者最终将可以成为 Apache Pegasus 的committer 。如果有对我们感兴趣的团队或个人,欢迎联系我们,与我们共建社区~

https://pegasus.apache.org/

重要提醒

项目发起者在申请 Apache 孵化器项目前一定要想清楚自己有时间可以从事开源建设工作,大家的精力总是有限的,服务于公司内部业务和开源社区之间往往有一方要牺牲一部分。

如果可以的话,建议要尽早地去构建开源社区。如果前期花费精力构建好了项目的开源社区,吸引了大量积极的贡献者,会对项目的发展和可持续性大有裨益。但另一方面,没有建立社区的项目往往在后期运营和投入上会非常痛苦。这是 Pegasus 做项目过程中的一点经验。

开始

当前处于孵化器状态的项目在:All Incubator Projects

最好的Apache Incubator入门文档在:The Apache Incubator Cookbook

孵化器申请书

申请孵化器项目首先需要撰写申请书。

It' s not required to have a good proposal, but having a good proposal will increase the chances of a positive outcome.

申请书通常有一套既定的模板,你需要详述项目的定位和挑战,团队是否曾经有过开源经验,是否有参与Apache项目的经历等等,这些信息能有助于让社区接纳你的项目。你可以参考其他孵化中或者已毕业项目的申请书:

Proposals - INCUBATOR - Apache Software Foundation

申请书写好后,我们要发给IPMC(Incubator Project Management Committee),具体方式是直接发邮件给 general@incubator.apache.org。

发邮件之前首先需要订阅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 人员列表:Apache Phone Book

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 :

lists.apache.org/thread

Doris 的 Proposal :( Palo 时期)

lists.apache.org/thread

6. Pegasus 的 Proposal 邮件

请点击这里阅读:Pony Mail!

版权问题

Pegasus 在版权上有一点小的插曲。

Pegasus 起初不是一个从零开始编码的项目,它基于 Microsoft 研发的分布式框架 rDSN 来构建。从 "分布式框架" 这个定义理解,相信你就知道 rDSN 覆盖的内容很多,很杂,架构相对目标单一的 " RPC 框架"," Raft  框架" 要复杂的多。架构上与其说 rDSN 是 Pegasus 的第三方库,不如说 Pegasus 是 rDSN 的子模块,由此可见其复杂程度。在 Microsoft 基本停止对该框架的开源维护后,该项目由小米Pegasus 团队 fork 并维护至今,我们对其集成了大量定制和重构。

虽说 rDSN 基于MIT协议开源,但我们仍担心这个项目会影响 Pegasus 整体的版权,抑或说会违背 Apache 的开源理念。

结论

From: 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.github.com/microsoft/rD

我们得到了 Justin Mclean 的解释,他认为这么做没有问题。

孵化器投票

Pegasus 的投票链接在:[VOTE] Accept Pegasus into the Apache incubation

这里展示一下其他项目的投票:

[VOTE] Accept APISIX into Apache Incubator

[VOTE] Accept PLC4X into the Apache Incubator

为了更好地发起号召,在投票时建议通知你的 champion 和 mentors。由他们先投一票,从而吸引关注者。又或者你可以直接让 champion 来发起投票,这样更能起个好头。

IP Clearance

投票成功后基本可以认为项目成功进入Apache 孵化器。后续的工作就是 IP Clearance ,即知识产权的合规检查。这是一个长期的工作,我们需要严格保证代码里声明了 Apache 的版权。

参考:

请点击这里阅读:Podling IP Clearance

1. 授权协议

为了以合法的形式正式捐献项目到 Apache Incubator ,接下来有以下事务:

1/ 如果以公司为捐献方(例如 Pegasus 背后为小米公司),我们需由公司签署 SGA (Software Grant Agreement) 。

2/ 每个 initial committer 都需要签署 ICLA (Individual Contributor License Agreement),从而获得一个 Apache 账号。

Please send only one document per email.

上述文件都需发送给Apache秘书处(secretary@apache.org)。注意一封邮件只发一份文件。

参考:

ASF Contributor Agreements

2. PPMC (Podling Project Management Committee)

Pegasus 会吸纳活跃贡献的 Contributor 作为我们的 Committer ,这意味着你将被认作是 Apache Pegasus 项目的积极推动者。对长期的活跃 Committer 我们也会举荐为 PPMC 成员,这个社区职位能够对未来 Committer 的纳新具有投票权,因而其门槛通常较高。

参考:

Podling Project Management Committee

3. 基础服务搭建

1/ 需要由 champion 创建一个JIRA主站,存放项目的 Issues 。Pegasus 的 JIRA站在:

请点击这里阅读:Apache Pegasus - ASF JIRA

2/ 同时也需要搭建孵化状态网站,这个网站会显示当前 Pegasus 的孵化进展,记录我们开源的重要时间点,例如新 committer 的加入,例如版权检查的完成时间。

http://incubator.apache.org/projects/pegasus.html

3/ 每个 Apache 项目都会有多个邮件列表,这样后来者也可以检索邮件列表了解状况。你可以通过网页 ASF Mailing List Subscription Helper完成对 Pegasus 项目邮件列表的订阅。对于 Pegasus,来自社区的贡献者们可以订阅 pegasus-commits(commits@pegasus.incubator.apache.org) 与 pegasus-dev(dev@pegasus.incubator.apache.org)两个邮件列表。

注:在项目孵化阶段,为了使所有的讨论能被所有人看到,Pegasus 只使用 dev 和commits 两个邮件列表,这样会更方便社区的壮大。

结语

到这里 Pegasus 的进入孵化器的过程已经基本完成,但孵化本身才刚刚开始,我们希望在不久的将来 Pegasus 能够作为顶级项目(Top-Level Project)登上舞台。希望阅读本文的你也能参与。

Pegasus 的愿景是打造一个高效易用稳定的分布式 Key-Value 存储,要实现这一目标并不容易——稳定性需要我们在一致性协议,数据安全,备份恢复上下足功夫;而性能上需要我们深挖瓶颈,极尽优化之能事;易用性上我们需要连接 Hadoop 生态,优化 API 体验,同时简化运维复杂度。这一切都需要一个强大活跃的开源社区支持才可能得以实现——这便是我们加入 Apache 的初心之一。

我们是 Apache Pegasus ,一个 Apache 孵化器项目。你可以通过 Pegasus 社区了解如何参与到我们的社区,并了解如何通过订阅我们的邮件列表来获取Pegasus 的最新动态。我们也在 RoadMap 中规划了许多有意思的事情,包括 Bulk Load,Pegasus API 的重构,以及安全认证等重要功能。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容