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 帮助我理解了一些重要概念,例如:

  1. Pool CRUD 端点,pool 用于限制执行的并行度。

  2. 任务 (Tasks) 决定实际需要执行的工作。

  3. DAG (有向无环图),它表示一系列任务的结构。它追踪任务、任务间的依赖关系以及它们的运行顺序。

  4. DAG 运行 (Dag Runs),它们是 DAG 在时间上的实例化。

通过积极和被动地参与讨论,我了解到即使存在意见分歧,人们总能从不同的方法中学习,而 这个有 300 多条评论的 PR 就是证明。我还开始评审小的 PR,这给了我与新人们交流的绝佳机会。在整个实习期间,我学到了很多关于不同框架和技术的知识,但我最大的收获是,代码被阅读的次数远多于被编写的次数,从那时起,我开始写代码时便牢记这一点。

总结

随着我扩展 Airflow 的 REST API 项目以及 Outreachy 实习即将结束,我要感谢我的导师 Jarek PotiukKaxil NaikKamil Breguła,感谢他们指导我时付出的耐心和时间,也要感谢 Airflow 社区让我感到如此受欢迎。我打算留下来继续贡献,回馈这个让我度过了一个值得铭记的夏天的社区。

分享

另请阅读

Airflow Summit 2022

Jarek Potiuk

Airflow Summit 2022 来了

Airflow Summit 2021

Tomasz Urbaszek

我们对 Airflow Summit 2021 感到非常激动!