近日,Apache孵化器主席、Apache基金会成员、Dubbo & RocketMQ等开源项目的导师Justin Mclean来到阿里巴巴西溪园区,与众多开发者分享了如何打造一个Apache顶级项目,以及项目孵化过程会遇到的一些盲点和挑战。

经Justin Mclean先生本人允许,并经主办方阿里中间件事业部&阿里技术战略部授权,小编将会议中分享的内容整理成文,带大家走进Apache软件基金会,了解顶级开源项目的晋级之路。现场为英文分享,本文在分享的基础上做了些内容扩展,感谢阿里巴巴高级技术专家千臂对本文的校对和在内容上的贡献

Justin Mclean Bio:

  • Apache孵化器主席

  • 独立程序员,30年+编程经验

  • Apache孵化器PMC

  • Apache软件基金会成员

  • 包括Dubbo在内的多个Apache项目的导师

  • 参与审核了350+ Apache孵化器项目的发布

Tips:除了独家内容还有独家礼品喔,文末送出可能是最具珍藏意义的《码出高效,Java开发手册》-Justin Mclean签名版,1本,以及2018 中国开源年会价值899元两日通票,8张,希望中奖绝缘体的小哥们这次能中奖 :)

为什么邮件列表仍是最主要的沟通方式?

Apache是目前全球最大的软件基金会,其第一个项目是Apache Httpd Server,大家用过的诸多项目,例如Dubbo, Log4j, Maven, RocketMQ和Tomcat等,均孵化自Apache。

中文名:Apache 软件基金会

英文名:Apache Software Foundation

英文简称:ASF

ASF 正式创建于1999年,主要是为公众提供有用的免费软件,并为软件开发者社区提供支持和服务,它的创建者是一个自称为Apache组织的群体。

早在1995年,Apache组织的成员聚集在一起,在美国伊利诺伊大学超级计算机应用程序国家中心开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。

早期,NCSA HTTPd服务器是一个叫Rob McCool的程序员开发的,但是后来慢慢失去了兴趣,导致这个功能强大又好用的服务器没人维护。于是一些爱好者和用户就自发开始维护起来,并不断改善功能、发布版本。为了更好的进行沟通,组织中的一位成员创建了一个邮件组,把维护工作高效的组织起来,并把这个软件叫 Apache 服务器。这也是为什么Apache的所有项目至今仍然以邮件列表作为沟通的主要方式。

Apache的命名来源于北美当地一支名叫Apache的印第安部落,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支部落表示敬仰,就取了这个名字。但这里还流传着一个小故事,说是在NCSA HTTPd基础上,大家都通过打补丁不断在修改这个软件,被戏称为A Patchy Server,和Apache Server读音很像。

Apache官网开源项目列表

后来,随着商业需求的增多,围绕Apache HTTP服务器的项目越来越多,也有一些外部组织开始捐献项目给Apache,以促进项目发展。为了让这些外部项目能顺利进入到Apache,Apache于2002年创建了Incubator(孵化)项目。经过20多年的发展,截止2018年,ASF 已拥有194个顶级项目,54个孵化项目,6500+位committers,700位基金会成员,196位PMC,50个podlings。其中,由中国开发者主导的项目,有RocketMQ,WeeX,ECharts和Skywalking等。

ASF 都有哪些成员?

参与Apache项目社区活动的人,一般分为以下几类:

  • 直接用户User:通过使用社区的项目构建自己的业务架构的开发者都是Apache的用户;

  • 贡献者Contributor:部分用户在使用Apache某个或多个项目的过程中,遇到问题,自己通过分析调试找到解决方案,并提交给项目组,最终被接受,这些用户就是Apache的贡献者;

  • 提交者Committer:贡献多了,经过PMC的提议和投票,就会成为Committer,Committer即意味着正式加入Apache,拥有Apache个人帐号以及相应项目的写权限;

  • PMC:Committer再往上走就是PMC,这个是由现有PMC成员提名产生的。

此外,ASF 还有21位创始成员,和一个Board Member Team,主要负责基金会各类章程的制定和运作。

特别要强调的是Project Management Committees,即 PMC,每个项目从孵化阶段开始就会有PMC,主要负责保证开源项目的社区活动都能运转良好,这里运转的机制就是The Apache Way。

什么是 The Apache Way?

就像我们加入一家公司需要了解这家公司的文化一样,参与Apache开源项目之前,我们也需要需要了解ASF的文化,这个文化就称为The Apache Way。

  • 公益使命- Charity:ASF是公益组织,使命是为全世界提供有用的软件,并且全部免费。取之有道,用之有方。


  • 实用主义 - Pragramtic:相比GPL,Apache License有更广泛的用户基础,有人的地方就有规矩,但社区没有死板的规定,只有guideline帮助大家发展项目。No one is the Boss.


  • 社区胜于代码 - Community把项目构建出来这不是开源,去构建社区才是真正的开源。对社区而言,一切都是围绕代码而生,无代码则社区不复存在。在代码之上,则是如何做事、如何待人、如何决策的理念体现,一个健康的社区远比优秀的代码重要。如果代码奇烂无比,社区可以重写,但社区有了问题,代码即便再好,最终也会付之东流。More resources than a company.


  • 公开透明与共识决策 - Open&Consensus所有的决定,不管是技术feature、发展方向,还是版本发布等,都应该被公开讨论,而形式就是邮件列表,这些讨论过程和结论都会被永久存档。而讨论的过程,就是大家自由发表意见的过程,最终通过投票,以比较民主的方法来做集体决定。If it doesn't happen on email, it doesn't happen.


  • 任人唯贤 - Merit特别强调一点,贡献绝不仅仅是代码,贡献可以是很多方面,还包括修正中英文文档,提交PR,总结经验分享到社区等等。Those that have proven they can do, get to do more.

开发者如何参与社区贡献

1. 第一步是先订阅开发邮件组,以Dubbo为例,具体步骤可以参考这里:

2. 学习中英文文档,进行修正或优化,提PR。有疑问的地方,可以E-mail到邮件组或提issue,官方开发者的回复通常会比Google或StackOverFlow里找到的答案更全面和准确。

3. 如果你正在使用某个开源项目,可以将实践经验总结出来,写篇blog,分享到社区。真实的案例总是最具有说服力的。

4. 参与issue和PR的解决,回答用户的问题、PR的review。Good first issue以及Help wanted的issue,总有一个适合你。

5. 如果你想深入学习Dubbo-rpc框架,UT是一个非常好的开始,完善和补充现有的UT,一边学习一边贡献,何乐而不为?

6. 发现了bug,报issue,通过自己的努力最终解决了,提一个issue,first-contributor并不是那么难,拼写错误也算哦。

7. 如果你发现一个可以帮助用户更方便地使用Dubbo,无论是开发、测试、调试、mock还是其他工具,都可以贡献到Dubbo生态中来。

8. 最后社区非常欢迎大家通过邮件提想法,也欢迎大家多讨论,你会发现,技术变牛的同时,英文也变的666了。

开源项目晋级之路

进⼊ Apache 分为三个阶段,准备阶段、孵化阶段和毕业阶段。

准备阶段:找到愿意帮助孵化的导师(通常是3位),向Apache 提交进⼊孵化的申请,经过导师们讨论并投票(获得多数票即可通过),通过后进⼊就可以孵化了。

孵化阶段:分为两大环节,第⼀个环节是公司和个人签署协议向Apache 移交代码和知识产权。第二个环节是在导师的指导下按照Apache的规范,搭建开源项目的官网,在社区发布项目新版本并优化build流程,引入committers构建基于项目的开发者生态,逐步将生态做大。

毕业阶段:如果最终通过了成熟度评估,就可以顺利毕业成为Apache的顶级项目了。

最后,当一位开发者提问Justin,如何晋级成一位顶级程序员?他给出了这样的答案:

  • 敢于试错,不要担心犯错,这是宝贵的经历,但要从中汲取经验避免第二次犯错;

  • 积极参加到开源社区,在社区可以锻炼自己的思考能力和解决问题的能力,同时,可以认识很多志同道合的朋友,这是技术能力以外更重要的财富;

  • 发型不重要。

识别小程序

参与Justin签名版《码出高效,Java开发手册》

抽奖活动

活动预告:2018 中国开源年会

看完文章不过瘾?快来2018 中国开源年会,和Justin Mclean面对面,此外还有多位来自阿里巴巴的重磅嘉宾分享关于开源的故事。

➜ 8张价值899元的两天通票,抽中就送喔。

(感谢会议主办方"开源社"的赠票)

识别小程序

参与两天通票抽奖活动


推荐阅读

»  阿里巴巴高级技术专家 至简 聊工程师思维(配音版)

- End -


©加入开发者微信群

☟☟☟


©每周一推

第一时间获得下期分享



对话Apache孵化器主席Justin Mclean | Apache顶级开源项目晋级之路相关推荐

  1. Apache孵化器主席Justin Mclean:如何成为Apache顶级开源项目

    近日,Apache孵化器主席.Apache基金会成员.Dubbo & RocketMQ等开源项目的导师Justin Mclean来到阿里巴巴西溪园区,与众多开发者分享了如何打造一个Apache ...

  2. 官宣!Apache Doris 从 Apache 孵化器毕业,正式成为 Apache 顶级项目!

    全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于美国时间 2022 年 6 月 16 日 宣布,Apache Doris 成功从 Apache 孵化器毕业,正式成为 Ap ...

  3. 官宣!Apache Doris 从 Apache 孵化器毕业,正式成为 Apache 顶级项目

    官宣!Apache Doris 从 Apache 孵化器毕业,正式成为 Apache 顶级项目! 全球最大的开源软件基金会 Apache 软件基金会(以下简称 Apache)于美国时间 2022 年 ...

  4. apache madlib 教程_Apache顶级开源项目——机器学习库MADlib简介与应用实例

    原标题:Apache顶级开源项目--机器学习库MADlib简介与应用实例 Apache MADlib是Pivotal与UCBerkeley合作的一个开源机器学习库,提供了精确的数据并行实现.统计和机器 ...

  5. GitHub 超 14,000 Star,中国又一 Apache 顶级开源项目诞生!

    [编者按]时至今日,Apache bRPC 在 GitHub 上已经收获了 14,356 个 Star,并正式从 Apache 孵化器毕业成为顶级开源项目.但 bRPC 的成功并不是一蹴而就的,开源近 ...

  6. 开源指南|如何从零开始参与 Apache 顶级开源项目?(二)

    作者:苏奕嘉|SelectDB 生态研发工程师 写在开头 上一篇文章 如何从零开始参与 Apache 顶级开源项目?我们介绍了 Apache Doris 社区的工作机制.如何参与社区贡献以及如何完成第 ...

  7. 注意!Apache下这些与Hadoop相关的开源项目要退休了!

    不知不觉之间,小编发现 Apache下许多与Hadoop相关的开源项目竟然都要退休了! 包括像Sentry.Tajo和Falcon在内的13个与大数据相关的Apache项目,相继在11天之内宣布退出. ...

  8. 2016年十大顶级开源项目

    在我们今年的年度顶级开源项目列表中,让我们回顾一下作者们提到的几个 2016 年受欢迎的项目,以及社区管理员选出的钟爱项目. 我们持续关注每年新出现的.成长.改变和发展的优秀开源项目.挑选 10 个开 ...

  9. 全球首次!阿里云把 Apache 顶级开源项目会议搬到线上

    2019 年 12 月,Flink Forward 亚洲站邀请了来自阿里巴巴.字节跳动.滴滴.美团点评.小米.bilibili.快手等一线厂商 45 位技术大佬分享其技术心得和实战干货,以及 Flin ...

最新文章

  1. 虚拟化--015 配置VMware View Event database失败:
  2. SSAS系列——【03】多维数据(多维数据集对象)
  3. Python解决八皇后问题
  4. web 全栈 学习 2 一个好的页面是如何炼成的
  5. 在Linux下安装配置Oracle11g R2
  6. html怎么设置数据条的颜色,jQuery EasyUI 数据网格 – 条件设置行背景颜色 | 菜鸟教程...
  7. 论文学习12-Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data(CRF
  8. 毕业设计论文选题系统系统用例图_基于Web的毕业论文管理系统的设计与实现
  9. Java开发者还用SSH?大清朝都亡了,你知道吗?
  10. 转载--Python random模块(获取随机数)常用方法和使用例子
  11. iOS YYKit学习之YYText的使用
  12. 微信小程序云开发数据库update函数更新不了数据(已解决)
  13. 2020语数外百度网盘小学全集下载
  14. 从400亿估值的链家网成长为4000亿的房地产产业平台,贝壳做对了这三点创新
  15. 怎么设置html表格的最小宽度,HTML表格的宽度怎么设置
  16. Linux平台被勒索软件REvil盯上
  17. 路由的实现原理是什么?
  18. 为什么放弃Vim而选择Neovim?
  19. spyder汉化方法
  20. java中使用Jedis操作Redis实例

热门文章

  1. Less、Sass\Scss
  2. Egret项目中遇到的一些问题
  3. 信誉卡逾期以后该怎么办
  4. VS2017 使用指南
  5. WINS服务器工作原理
  6. 国内有哪些知名IDC机房?
  7. [Hadoop]ERROR security.UserGroupInformation:PriviledgedActionException as:Administrator
  8. 背单词App开发日记5(下)
  9. 中英文说明书丨CalBioreagents艾美捷UR-144单克隆抗体
  10. css之文字阴影效果