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 社群讓我感到如此受歡迎。我打算留下來繼續貢獻,回饋這個讓我度過了一個值得銘記的夏天的社群。
分享