"Giving up upstream-ing my patches & feel free to pick them up"
Hacker News
A developer announces they are ceasing to submit their code patches upstream for the OpenJDK Hotspot project, inviting others to freely pick up and continue their work.
Hacker News
A developer announces they are ceasing to submit their code patches upstream for the OpenJDK Hotspot project, inviting others to freely pick up and continue their work.
AI 生成摘要
一位開發者宣布將停止向 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)的協議被認為相對友善,因為它限制了未來重新授權必須維持開源性質。