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 感到非常激動!