当前位置: 首页 > Linux

Apache孵化器主席JustinMclean:如何成为Apache顶级开源项目

时间:2023-04-06 22:26:15 Linux

近日,Apache孵化器主席、Apache基金会成员、Dubbo&RocketMQ等开源项目导师JustinMclean来到阿里巴巴XixiPark和众多开发者分享了如何创建一个Apache顶级项目,以及在项目孵化过程中遇到的一些盲点和挑战。经JustinMclean先生本人同意,主办方阿里中间件事业部&阿里技术战略部授权,小编将会议分享内容整理成文,带大家走进Apache软件基金会了解推广的顶级开源项目。路。(本站为英文分享,本文在分享的基础上进行了一些内容扩展,感谢阿里巴巴高级技术专家QianArm对本文进行校对并贡献内容)JustinMcleanBio:独立程序员,董事长Apache孵化器,30年+编程经验Apache孵化器PMCAApache软件基金会成员Dubbo等多个Apache项目导师参与审核350+Apache孵化器项目发布为什么邮件列表仍然是最重要的沟通方式?Apache是目前世界上最大的软件基金会。它的第一个项目是ApacheHttpdServer。你用过的很多项目,比如Dubbo、Log4j、Maven、RocketMQ、Tomcat等,都是从Apache孵化出来的。中文名称:ApacheSoftwareFoundation英文名称:ApacheSoftwareFoundation英文缩写:ASFASF于1999年正式成立,主要为公众提供有用的免费软件,为软件开发者社区提供支持和服务。它的创建者是一个自称为ApacheOrganization的组织。早在1995年,Apache组织的成员就聚集在一起,基于美国伊利诺伊大学国家超级计算机应用中心开发的NCSAHTTPd服务器开发和维护名为Apache的HTTP服务器。早期,NCSAHTTPd服务器是由一位名叫RobMcCool的程序员开发的,但后来慢慢失去了兴趣,导致没人维护这个功能强大且易于使用的服务器。于是一些爱好者和用户开始自发维护它,不断完善功能和发布版本。为了更好地沟通,组织的成员创建了一个邮件组来高效地组织维护工作,并将该软件称为Apache服务器。这就是为什么所有Apache项目仍然使用邮件列表作为主要通信方式的原因。Apache以北美当地印第安部落Apache的名字命名。这个部落以其高超的军事修养和超人的忍耐力而闻名。它抵抗了19世纪下半叶入侵其领土的侵略者。为了表示对这个部落的尊重,才取了这个名字。不过这里还流传着一个小故事,说是在NCSAHTTPd的基础上,大家不断的通过打补丁的方式修改这个软件,昵称是APatchyServer,和ApacheServer读音相近。后来随着业务需求的增加,围绕ApacheHTTP服务器的项目越来越多,一些外部组织也开始向Apache捐赠项目,以促进项目发展。为了让这些外部项目顺利进入Apache,Apache在2002年创建了Incubator(孵化器)项目。经过20多年的发展,截至2018年,ASF拥有194个顶级项目,54个孵化项目,6500+committer,700基金会成员、196个PMC和50个podlings。其中,由中国开发者主导的项目包括RocketMQ、WeeX、ECharts、Skywalking。谁是ASF成员?参与Apache项目社区活动的人一般分为以下几类:DirectUser:使用社区项目构建自己业务架构的开发者是Apache用户;Contributors:部分用户在使用Apache或者多个项目的过程中,遇到问题,通过分析调试找到解决方案,提交给项目组,最终被采纳。这些用户是Apache贡献者;Committer:我贡献了很多,经过PMC的提议和投票,你就会成为Committer。Committer是指正式加入Apache,拥有个人Apache账号和对应项目的写权限;PMC:Committers上升到PMC,PMC由现有的PMC成员提名。此外,ASF拥有21名创始成员和董事会成员团队,主要负责基金会各项章程的制定和运作。应特别强调项目管理委员会或PMC。每个项目从孵化阶段都会有一个PMC。主要负责确保开源项目的社区活动能够良好运行。这里的运行机制是TheApacheWay。什么是Apache之道?就像我们加入一家公司需要了解这家公司的文化一样,在参与Apache开源项目之前,我们也需要了解ASF的文化,叫做TheApacheWay。公共使命-慈善:ASF是一个非营利组织,其使命是向全世界免费提供有用的软件。取之有道,用之有道。Pragmatism-实用主义:与GPL相比,ApacheLicense拥有更广泛的用户群。有人的地方就有规矩,但社区没有硬性规定。只有指南才能帮助大家开发项目。没有人是老板。Communityisbetterthancode-社区:建项目不开源,建社区才是真正的开源。对于一个社区来说,一切都围绕着代码,没有代码,社区就不存在了。在代码上,是如何做事、如何待人、如何决策的概念。一个健康的社区远比优秀的代码重要。如果代码极其糟糕,社区可以重写,但如果社区有问题,代码再好,最终也会被浪费掉。资源比公司多。公开、透明和共识决策——Open&Consensus:所有的决定,无论是技术特性、发展方向,还是版本发布,都应该公开讨论,形式是邮件列表。这些讨论过程和结论将永久存档。讨论过程是大家自由发表意见,最终以更加民主的方式通过投票做出集体决策的过程。如果它没有发生在电子邮件上,它就不会发生。Merit-Merit:需要强调的是,贡献不仅仅是代码,贡献可以有多种方式,包括修改中英文文档、提交PR、总结经验和分享到社区等等。那些已经证明自己可以做的人,可以做更多。开发者参与社区贡献的第一步是订阅开发邮件组。以Dubbo为例,具体步骤可以参考这里:https://github.com/apache/incubator-dubbo/wiki/Mailing-list-subscription-guide学习中英文文档,修改或优化,提交公关。有问题可以E-mail到邮件组或提issue。官方开发者的回复通常会比在Google或StackOverFlow中找到的答案更全面和准确。如果你使用的是开源项目,可以总结实践经验,写一篇博客,分享给社区。真实的案例总是最有说服力的。参与issue和PR的解决,回答用户问题和PRreview。好的第一期和帮助想要的问题,总有一个适合你。如果你想深入了解Dubbo-rpc框架,UT是一个很好的开始,完善和补充现有的UT,边学边贡献,何乐而不为呢?发现了bug,报了issue,最后通过自己的努力解决了。提个issue也没那么难,first-contributor,拼写错误也算。如果你找到一个可以帮助用户更方便的使用Dubbo的工具,无论是开发、测试、调试、mock还是其他工具,你都可以为Dubbo生态做出贡献。最后,社区欢迎大家通过邮件提交想法,也欢迎大家多多讨论。你会发现,在技术变好了的同时,英文也变成了666。开源项目进Apache的推广之路分为三个阶段,准备阶段、孵化阶段和毕业阶段。筹备阶段:寻找愿意帮助孵化的导师(一般为3人),向Apache提交进入孵化申请,在导师中讨论投票(多数票通过),通过后进入孵化。孵化阶段:分为两部分。第一部分是公司和个人签署协议,将代码和知识产权交给Apache。第二个环节是在导师指导下按照Apache规范搭建开源项目官网,在社区发布项目新版本并优化搭建流程,引入committer搭建基于项目的开发者生态圈,逐步扩大生态圈。毕业阶段:如果最终通过成熟度评估,就可以顺利毕业,成为Apache的顶级项目。最后,当一位开发者问贾斯汀如何成为顶级程序员时?他给出了如下回答:敢于尝试,敢于犯错,不要担心犯错,这是宝贵的经验,但要从中吸取教训,避免犯第二次错误;积极参与开源社区,锻炼思维能力,解决问题的同时,可以结识很多志同道合的朋友,这是比技术能力更重要的财富;发型并不重要。活动预告:2018中国开源年会看文章是不是很好玩?来到2018中国开源年会,与JustinMclean面对面,还有来自阿里巴巴的众多重要嘉宾分享开源故事。本文作者:中间件哥阅读原文本文为云栖社区原创内容,未经允许不得转载。