停止提交上游補丁,鼓勵他人採納

Hacker News·

一位開發者宣布將停止向 OpenJDK Hotspot 專案提交其程式碼補丁,並鼓勵其他人自由採用並繼續其工作。

背景

這起事件源於一位開發者在 OpenJDK 郵件論壇中宣布放棄將其補丁提交至上游,並表示歡迎他人接手。該開發者在過去一年中試圖修復 OpenJDK 在非 GCC 編譯器(如 Clang)下的編譯錯誤,卻陷入了 Oracle 貢獻者協議(OCA)審核的官僚泥沼,即便多次詢問也僅得到官僚式的道歉與推諉,最終導致其失去耐心。

社群觀點

Hacker News 的討論首先聚焦於這些補丁的技術價值。部分評論者最初認為這些改動僅是移除不必要的數字後綴,顯得有些瑣碎;但隨即有專家指出,這些後綴在 C++ 標準中其實是不合法的,會直接導致 Clang 等編譯器報錯。支持者認為,這種「瑣碎」的修復正是新貢獻者進入大型專案的最佳切入點,既能解決實際的相容性問題,又能讓開發者熟悉貢獻流程。然而,OpenJDK 顯然在流程上設置了極高的門檻,讓即便是最簡單的修復也難以推進。

針對 Oracle 的角色,社群展開了激烈的辯論。許多人批評 Oracle 對 OpenJDK 的控制過於嚴苛,貢獻者協議(CLA/OCA)本質上是為了確保企業能無償且無法律風險地使用社群代碼,這對許多開發者及其雇主來說是種阻礙。有觀點認為,如果一個開源專案由單一企業主導且流程僵化,開發者應將其視為該公司的私人產品而非真正的社群專案。但也有反對意見指出,像 OpenJDK 這樣規模龐大且涉及企業關鍵基礎設施的專案,嚴格的法律審核與官僚體系是不可避免的惡,並非全然出自惡意,而是為了管理複雜性與法律責任。

此外,不少資深維護者分享了「拒絕審核」的另一面。他們提到,維護者往往面臨大量低質量的補丁,這些補丁可能缺乏測試、風格不符,甚至是由 AI 生成的垃圾代碼。審核一個看似簡單的補丁往往需要耗費數小時的溝通與測試,這對志願者或資源有限的團隊來說是沉重的負擔。這種「維護者疲勞」導致了回應速度下降,進而形成惡性循環:優秀的貢獻者因為被忽視而離開,留下的只有不斷產生的技術債。

討論中也出現了對開源協作模式的反思。有人提出,隨著大型專案的貢獻難度增加,未來可能會出現更多「個人化分支」的現象,開發者不再執著於將代碼併回上游,而是透過自動化工具維護適合自己的版本。這種觀點雖然激進,卻反映了當前開發者對大型企業主導之開源生態的普遍挫折感。

延伸閱讀

在討論中,參與者提到了幾個與 Java 散佈版及貢獻流程相關的資源。若開發者對 Oracle 的版本感到不滿,可以參考 WhichJDK 網站,該網站整理了包括 Eclipse Temurin、Amazon Corretto、Red Hat 等多種 OpenJDK 散佈版的差異。此外,也有人對比了不同專案的貢獻者協議,例如 Python 軟體基金會(PSF)的協議被認為相對友善,因為它限制了未來重新授權必須維持開源性質。

Hacker News

相關文章

  1. AI正在摧毀開源,而且它還不夠好

    2 個月前

  2. 開源專案不是關於你

    2 個月前

  3. LocalStack 封存 GitHub 儲存庫並轉向統一映像檔

    大約 1 個月前

  4. 我不再需要你的 PR 了

    7 天前

  5. 別碰我的垃圾

    3 個月前

其他收藏 · 0