Jazzband 正在逐步結束營運。新用戶註冊已被禁用。專案負責人將在 PyCon US 2026 之前收到聯繫,以協調專案轉移。結束計畫中包含時間表,回顧文章則詳述整個故事。
十多年前,Jazzband 作為一個合作實驗開始,目的是減輕維護開源軟體專案的壓力。理念很簡單——每個加入的人都能獲得推送程式碼、處理問題、合併拉取請求的權限。「我們都是這個團隊的一份子。」
這個計畫運作良好,實際上持續了超過十年。
但現在是時候結束了。
GitHub 的「混亂災難」——大量 AI 生成的垃圾拉取請求和問題——使得 Jazzband 這種開放會員制和共享推送權限的模式變得不可行。
Jazzband 是為一個最壞情況只是有人不小心合併錯誤拉取請求的世界設計的。在一個只有十分之一的 AI 生成拉取請求符合專案標準、curl 因確認率低於 5% 而關閉漏洞賞金計畫、GitHub 自身甚至啟動關閉拉取請求的緊急開關的世界裡,一個讓所有加入者都擁有推送權限的組織已無法安全運作。
但說實話,問題早已存在許久。
Jazzband 一直是由一人負責的運作模式。多年來有人要求增加協助人員並提出幫忙,我也嘗試過多次讓它成形,但始終未能持續。我未能妥善組織,當志願者願意出力時,過一陣子他們又會悄悄退出。這不是對他們的批評,這是志願工作在缺乏結構支持下的常態。
結果都是一樣:每次專案轉移、負責人指派、PyPI 權限變更、基礎設施決策——全都由我一人處理。
可持續性問題早在 2017 年就被提出。我在 2021 年 DjangoCon Europe 的主題演講中談到這點——五年後。我在演講中坦言,「社交編碼」的實驗未能建立公平的社群,沒有嚴肅的財務支持就無法找到可持續的解決方案。
我提出的路線圖——重構基礎設施、擴大管理團隊、正式化指導方針、尋求資金支持——這些都未實現。唯一實現的是 PSF 的財務贊助。
這幾年來,我加入了 PSF 董事會,面對自身的危機,現在擔任 PSF 主席。這份工作很重要,我不後悔優先處理,但也因此 Jazzband 得到我投入的時間更少了。
同時,GitHub 朝相反方向發展。Copilot 於 2022 年推出,訓練於維護者免費維護的開源程式碼上。60% 的維護者仍未獲得報酬。
2024 年的 XZ Utils 後門事件顯示,當單一維護者疲乏時,惡意者可能趁虛而入。Jazzband 自身的基礎設施也開始阻礙它應該幫助的專案——發布流程無法支援可信發佈,需要管理員權限的專案陷入困境。
因此,專案開始離開。這沒關係——這本來就是協議的一部分。
對於非 Django 專案如 pip-tools、contextlib2、geojson 或 tablib,我不清楚有類似的組織。如果有人想為更廣泛的 Python 工具生態系建立類似組織,我很樂意看到。
十多年來,Jazzband 成長到擁有來自除南極洲外各大洲的 3,135 名成員,維護 84 個專案,擁有約 93,000 個 GitHub 星標,並向 PyPI 發佈了 1,312 個版本。
通過 Jazzband 的專案每月下載量超過 1.5 億次——pip-tools 2300 萬次,prettytable 4200 萬次。django-debug-toolbar 在 Jazzband 下維護了 8 年,最終成為官方 Django 教學的一部分。django-avatar 這個 2008 年的倉庫直到 2026 年仍持續發佈版本。django-axes 發佈了 129 個版本,巔峰時期平均每 13 天發佈一次。
完整的十年回顧包含所有數據、故事與實際發生的事。
我不會一夜之間關閉服務。結束計畫有詳細時間表,簡短說明是:
如果你是專案負責人,請期待很快會收到電子郵件。
沒有那些願意出現的人——這些網路上的陌生人決定一起維護東西,這一切都不可能實現。感謝 81 位專案負責人,儘管我造成瓶頸,他們仍堅持維持運作,也感謝所有加入、貢獻、回報問題和發佈版本的人。
我創立 Jazzband 是因為獨自維護開源軟體令人疲憊。成為 71 個專案的單點故障,這諷刺我心知肚明。但這個實驗在重要方面成功了——專案得以維護,版本得以發佈,人們得以合作。
無論如何,專案將搬到新的家園,這沒問題。這一直是目標。