Django董事會成員,同時也是專案核心團隊成員的James Bennett,發出新提案想要解散Django核心,並以合併者(Merger)和發布者(Releaser)來代替原有的提交者(Committer),以解決日益失能的Django核心團隊,阻礙專案發展的問題。目前這項提案在GitHub和郵件列表中被熱烈討論中。

Django是一款優秀的網頁框架,被全世界許多大型企業以及組織採用,但現在卻遇到了貢獻者流失,導致專案發展困難的處境。James Bennett提到,這是多數大型開源專案遲早都會遇到的問題,而不少的開源專案仰賴企業支援來避免這樣的問題,藉由企業員工幫忙維護框架,確保專案持續發展,而Django早期也是以這樣的方式生存,在開發公司開源之後,由幾個關鍵貢獻者維持開發,但是這樣的形式並沒有被發展成長期形式。

而這也代表著Django專案現在依靠沒有酬勞的貢獻者發展,但最近人力已經開始供不應求了,James Bennett表示,通常修正小臭蟲以及開發小功能是用來增加提交者的好機會,但這些事情Django的既有成員都會完成。雖然這樣的情況並不代表Django現況很糟,而是依照這個情勢發展,將在未來面臨嚴重的問題,Django專案無法吸引到新的提交者,來取代不活躍甚至沒有活動的提交者。

Django專案並沒有從用戶群中,形塑出貢獻者,Django在全球都受到歡迎,各地舉辦許多研討會以及課程,Django是開發中國家新興開發人員的首選開發框架,也是眾多女性開發者開始職涯的上手工具,但James Bennett提到,這些狀況都沒有在Django的貢獻者中呈現出來,也就是說沒有使用者轉而成為Django的貢獻者。使用者的貢獻是專案長期生存的必要條件,同時也能避免專案只受單一團隊控制。

為了解決Django目前遭遇到的發展困境,James Bennett提出新的提案以改革與重組Django核心團隊。他解釋到,依照Django開源專案現在的治理模型,任何人都可以提出修改以及補丁,但是只有提交者也就是Django核心團隊和技術委員會才有權作出決定。提交者可以對專案做出任何改變,只需要對技術委員會負責,而事實上,也很少有提交者實際使用Commit bit,決策都還是透過討論取得共識決定的,參與的人包括提交者和非提交者,以及django-developers列表中的成員,而且多數實際提交都是由研究員進行的。

雖然擁有Commit bit的提交者,有權利直接對Django專案推送程式碼變更,但是通常也都會徵求討論,但最重要的是,現在Django專案中的不少提交者都處於非活動的狀態。因此James Bennett認為,從各層面來說Django提交者既然都失去作用了,那倒不如直接解散。

而James Bennett也提出以合併者和發布者兩個角色,來代替原有的提交者的計畫。合併者負責拉取請求到Django,而發布者負責打包和發布版本,相較於提交者是一個全能的角色,新的組織設計更加制度化。最初的合併者將由當前研究員組成,而發布者也會以相似的方式決定。

新提案將保留技術委員會,並且賦予一些額外的決定權,主要是參與決定合併者和發布者的工作,並確認Django即將發布的版本。另外,董事會選舉的頻率將會降低,目前計畫會是主要版本發布時舉辦一次,而非現在每個版本發布都進行,技術委員會的選舉也將對django-developers列表成員開放。

James Bennett認為,刪除擁有超大權利的提交者角色,以一般貢獻者取而代之,將有助於讓專案對一般人更加開放,特別是讓程式碼提交的工作更加制度化,並使django-developers郵件列表成員的意見聲量相等,雖然這個方法不會直接解決貢獻者不足的問題,但卻是能更好的解決這個問題的途徑。

另外,新提案賦予技術委員會更多的權利,像是發布最終版本的決定權。James Bennett認為,這個設計可能並非最佳解,但卻是能成為解決僵局的必要手段,技術委員會的設置能避免Django專案,陷入暴民統治的混亂。技術委員會成員的資格,需要目前擁有提交者身份。

整個提案細節仍在補完中,James Bennett會繼續收集更多的回饋以加到提案中,預計在下個月會以合理的形式進行投票表決。他希望在2019年年中,Django專案就可以完全以新提案的形式運作,並且在接下來的時間,有效解決現下的問題。


Advertisement

更多 iThome相關內容