从开源“小透明”到 Apache Committer Link to heading
近日,我收到了 Apache Software Foundation (ASF) 的邀请,以 Apache Fesod PPMC 成员 的身份正式成为一名 Apache Committer。
GitHub 我已使用十余年,过去也曾长期活跃在国际知名的开源软件社区。这一次,借由一个由国内发起的项目进入 ASF,算是“出口转内销”,让我再次以新人姿态融入到一个更大的开源社区。这段经历值得记录。
1. 开源“小透明” Link to heading
我的开源起点并不早。学生时代,开源还远没有今天这么普及。学习主要依赖书籍和课堂,能接触到的开源元素可能就是当年 Ubuntu 官方寄来的免费光盘。
那时的课程项目多半封闭在实验室或公司内部。第一次真正接触到 GitHub 上的开源项目,是因为一次参加我司的编程马拉松。当时的练手题是一个开源 Quiz:length。那是我第一次在网上 fork 项目、提交 commit 并完成迭代,对当时的我来说,充满新鲜感。
不过由于工作环境的特质,又身处“IT 荒漠”的天津,我与开源的联系断断续续,除了偶尔参加 meet-up,几乎没有太多贡献。那几年,我甚至连博客都很少更新。
2. 步入开源 Link to heading
真正让我与开源建立紧密联系的,是工作中的需求。
彼时,我有幸孵化了内部的自动化测试团队,这让我接触到 Selenium、Cucumber 和 Appium。在团队内部,我们成功打造了一个服务于近百个系统的自动化测试框架和平台。
如果不是疫情,也许我会继续只做开源的使用者。但疫情带来的停摆,让我有机会沉下心来深入研究这些软件。随着对它们的理解加深,我开始尝试从 typo 和文档 入手,逐步走向代码层面的提交。
等到疫情结束时,我已经成为 Selenium、Appium、Cucumber 三大社区的 Member,并在 GitHub 上活跃着。而且,似乎我是唯一来自于大陆又同是这三家社区的 Member 的人。

开源的影响不仅仅停留在“写代码”:
- WebDriver 的特性让我更深入理解了 W3C 规范与浏览器实现;
- Selenium 让我更加关注 Web 与浏览器底层机制;
- 我们甚至有机会将线上笔试题开源,虽然即使这样,招到每一个合适的候选人的过程都很艰难:Java 开发、自动化测试。
开源在潜移默化中提升了我的研发视野,也让我第一次在行业中找到了方向。
我还记得第一次收到 Selenium 社区核心成员 Diego 的社区礼物时,为疫情期间如何收货海外快递发愁。

也记得我的第一次社会公开主题演讲 《站在测试金字塔的顶端保障质量》,就是基于这些开源经历。

虽然后来因工作重心转向质量效能,和最初活跃的社区交集渐小,但一些习惯保留了下来,比如每年以何种方式出现在 Selenium 的 State of the Union。
Link to heading
3. 新的阶段 Link to heading
与 Fesod 的结缘,是一个意外。
早年我就用过 EasyExcel。它简单易用,性能也不错,我也偶尔 commit。

但随着作者离开创业,项目逐渐停更,阿里官方也宣布停止维护。对企业用户来说,这样的组件风险极大。

年初,在我研究 Serverless 相关报表实现规范 时,发现了 FastExcel。它几乎与 EasyExcel 一脉相承,并且功能更丰富,解决了不少实际问题。我随即深入社区。
当时 FastExcel 的仓库里虽然有大量单测与集成测试,但大多已无法正常执行,CI 也屏蔽了全量测试。我心想,“这你受得了么”,于是断断续续在几个月的时间里把大部分测试重构了一遍,使得每次提交都能触发核心用例的执行,每天也有执行耗时数百分钟的全量回归,极大保障了质量。随着熟悉度提升,我也逐步参与功能的设计和提交。很快,我收到了 Shuxin 的邀请,成为社区协作者。

后面的事情就有些水到渠成了:
社区成员熟络于开源活动,项目有稳定的运营团队,项目被各式各样的项目所依赖。小伙伴们联系到了 ASF 的 Board,提交了捐献的 Proposal,凑足 Mentor 团队,经过一段时间的项目规范化以及 Vote,项目更名为 Fesod (Fast easy spreadsheet and other documents),成功进入了 Apache Incubator Projects。于是秋天的某个早晨,我收到了 ASF 的邀请,正式成为 Apache Committer。

相比之前的国际化社区,Fesod 社区人数虽少,但响应积极、氛围活跃。这里让我收获了许多新知识,例如:
- Excel 引用偏移 的实现 [PR#581]
- Mac 1904 日期体系 的兼容 [PR#435]
- FuzzTest 等体系化质量保障机制 [Issue#521]
如今,Fesod 在 GitHub 上已有 5k+ stars,贡献者遍布亚太地区,社区正蓬勃发展。
Link to heading
4. 写在最后 Link to heading
开源不是速成营。
它更像是一面镜子,折射出你对 协作、耐心与结构化思考 的真实状态。
Committer/Member 权限不是身份标签,而是守护职责的象征。
如果你正站在门外犹豫,不妨:
👉 从“解决一个自己真正遇到的问题”开始,然后交给时间和复利。