Outreachy 是一个为通常在 FOSS 项目中代表性不足的人群组织为期三个月带薪实习的项目。
贡献期
我首先要做的是在一个组织下选择一个项目。仔细查看所有项目后,我选择了“扩展 Apache Airflow 的 REST API”,因为我对 REST API 有很好的了解,所以认为开始贡献会更容易。下一步是设置 Airflow 的开发环境,多亏了 Breeze,这轻而易举。由于我以前从未为 FOSS 贡献过,所以这部分有些令人不知所措,但幸运的是,有许多标有“good first issues”的问题,它们带有详细的描述,有些甚至包含代码片段,这恰好将我推向了正确的方向。正是 Airflow 的这些特点以及社区的积极氛围,让我决定将 Airflow 作为我的 Outreachy 项目。
实习期
我的第一个 PR 之后有很多新经历,其中之一就是我引入了一个 bug 😉。但这让我熟悉了反馈循环,而我的后续 PR 收到的反馈是我整体学习体验的重点,这增强了我更多贡献并走出舒适区的信心。我想更多地了解 Airflow 的内部机制,于是我开始筛选处理不同组件的近期 PR,并仔细研究代码变更和相关的讨论,这有助于我更好地理解整个工作流程。Airflow 的邮件列表也是一个很棒的知识来源。
我参与的与 API 相关的 PR 帮助我理解了一些重要概念,例如:
-
Pool CRUD 端点,pool 用于限制执行的并行度。
-
任务 (Tasks) 决定实际需要执行的工作。
-
DAG (有向无环图),它表示一系列任务的结构。它追踪任务、任务间的依赖关系以及它们的运行顺序。
-
DAG 运行 (Dag Runs),它们是 DAG 在时间上的实例化。
通过积极和被动地参与讨论,我了解到即使存在意见分歧,人们总能从不同的方法中学习,而 这个有 300 多条评论的 PR 就是证明。我还开始评审小的 PR,这给了我与新人们交流的绝佳机会。在整个实习期间,我学到了很多关于不同框架和技术的知识,但我最大的收获是,代码被阅读的次数远多于被编写的次数,从那时起,我开始写代码时便牢记这一点。
总结
随着我扩展 Airflow 的 REST API 项目以及 Outreachy 实习即将结束,我要感谢我的导师 Jarek Potiuk、Kaxil Naik 和 Kamil Breguła,感谢他们指导我时付出的耐心和时间,也要感谢 Airflow 社区让我感到如此受欢迎。我打算留下来继续贡献,回馈这个让我度过了一个值得铭记的夏天的社区。
分享