pybind26: 從頭刻一個 HPC bridge 有多難

scc

Peter
這場分享會從貢獻者視角介紹 CPython 的專案架構,說明文件、測試、標準函式庫等區域如何成為第一次貢獻的入口。我也會用自己的 PR 案例,帶會眾比較兩種路徑:從 issue 清單找問題,以及從「讀文件 → 使用功能 → 讀程式碼」主動挖掘問題。
會眾不需要是 C 高手,也不需要一開始就理解 CPython 的全部運作。聽完之後,會眾會知道如何縮小範圍、判斷一個問題是否適合自己處理,並找到第一個 CPython PR 可以開始的地方。
去年參加 PyCon TW 之後,我開始嘗試參與 CPython 與 commitizen 的開源貢獻。最初面對 CPython repository 時,我和很多開發者一樣感到不知所措:專案規模很大、issue 很多、底層又包含 C 實作,很難判斷自己能從哪裡開始。
這場分享是從已熟悉 Python、但第一次嘗試貢獻 CPython 的開發者角度,整理出「如何找到第一個可行切入點」的實戰經驗。我會先從貢獻者視角介紹 CPython repository 中較適合第一次探索的區域,例如 Doc、Lib、Lib/test、Tools,說明文件、測試、標準函式庫行為與工具改善如何成為貢獻入口。
接著,我會用自己的 CPython PR 案例比較兩種切入方式。第一種是從 issue 清單找問題,例如 gh-139743 / PR gh-139746;這條路徑的優點是問題已經被提出,但困難是 CPython issue 節奏很快,適合第一次貢獻者的機會並不穩定。第二種是從「讀文件 → 使用功能 → 讀程式碼」主動找到問題,例如 gh-139487 / PR gh-139488 的 enum 文件修正,以及 gh-139819 / PR gh-139820 的 rlcompleter 行為改善;這條路徑雖然需要更多原始碼閱讀,但更能累積對標準函式庫與專案結構的理解。
最後,我會整理第一次 CPython 貢獻者可以採取的實際策略:先從文件、測試、標準函式庫的小範圍開始;判斷自己是否能重現問題、找到相關檔案、跑出對應測試;並把 review 視為開源協作的一部分,而不是能力審判。聽眾離開時,會知道如何縮小範圍、評估問題是否適合自己處理,並規劃自己的第一個 CPython PR。

scc

Kalyan Prasad

Xavier Yen (顏志穎)