Following system colour scheme - Python 增強提案 Selected dark colour scheme - Python 增強提案 Selected light colour scheme - Python 增強提案

Python 增強提案 (Python Enhancement Proposals)

PEP 13 – Python 語言治理

作者:
The Python core team and community
狀態:
作用中
類型:
流程
主題:
治理
建立日期:
2018-12-16

目錄

摘要

本 PEP 定義了 Python 的正式治理流程,並記錄了其隨時間的演變過程。目前,治理工作是以指導委員會為核心。委員會擁有廣泛的權力,但他們致力於將這些權力的行使降至最低。

當前指導委員會

2025 年任期指導委員會成員包含:

  • Barry Warsaw
  • Donghee Na
  • Emily Morehouse
  • Gregory P. Smith
  • Pablo Galindo Salgado

根據 PEP 8106 中記錄的投票結果。

核心團隊成員名單詳見私有倉庫 https://github.com/python/voters/,該名單透過 https://devguide.python.org/developers/ 公開分享。

規範

指導委員會

組成

指導委員會為一個 5 人委員會。

授權範圍

指導委員會應致力於:

  • 維護 Python 語言與 CPython 解釋器的品質與穩定性,
  • 使貢獻過程盡可能地親近、包容且永續,
  • 正式化並維護核心團隊與 PSF(Python 軟體基金會)之間的關係,
  • 為 PEP 建立合適的決策流程,
  • 在採取正式行動前,尋求貢獻者與核心團隊之間的共識,
  • 在所有其他途徑皆無效的情況下,作為「最終上訴法院」進行裁決。

權力

委員會擁有對專案決策的廣泛權力。例如,他們可以:

  • 接受或拒絕 PEP
  • 強制執行或更新專案的行為準則
  • 與 PSF 合作管理任何專案資產
  • 將部分權力委託給其他小組或流程

然而,除非透過本 PEP 指定的機制,否則他們無法修改本 PEP,也無法影響核心團隊的成員構成。

委員會應尋求盡可能減少行使這些權力的方法。比起投票,尋求共識更好。比起對個別 PEP 進行裁決,定義標準的 PEP 決策流程(例如,採納 801x 系列中的其他 PEP)更好。建立行為準則委員會比對個別案件進行裁決更好。以此類推。

為了行使權力,委員會需進行投票。每位委員會成員必須投票或明確表示棄權。在特定投票中存在利益衝突的成員必須棄權。投票通過需要非棄權委員會成員的絕對多數支持。

委員會的審議與投票應盡可能公開進行。

委員會選舉

委員會選舉分為兩個階段:

  • 第一階段:候選人宣佈其服務意願。候選人必須由一名核心團隊成員提名。允許自薦。
  • 第二階段:每位核心團隊成員可以為每位候選人分配 0 到 5 顆星。投票以匿名方式進行。投票結果使用 STAR 投票系統決定,並修改為使用 多勝選者區塊 STAR (Multi-winner Bloc STAR) 方法。若出現平手,可由候選人之間協商解決,否則將由隨機方式選出獲勝者。

每個階段持續一至兩週,由即將卸任的委員會酌情決定。首次選舉時,兩個階段各持續兩週。

選舉流程由即將卸任的指導委員會提名的一名選務官員管理。首次選舉時,選務官員將由 PSF 執行董事提名。

委員會應理想地反映 Python 貢獻者與使用者的多樣性,並鼓勵核心團隊成員據此投票。

任期

新委員會在每次功能版本發布後進行選舉。每屆委員會的任期從選舉結果最終確定時開始,直到下一屆委員會任期開始為止。任期無限制。

職缺

委員會成員可隨時辭職。

在常規任期內若出現職位空缺,委員會可投票任命替補人員完成剩餘任期。

若某位委員會成員失聯一個月或更久,委員會其餘成員可投票更換該成員。

利益衝突

雖然我們相信委員會成員會以 Python 而非個人或其雇主的最佳利益行事,但單一公司主導 Python 開發的現象本身可能有害並損害信任。為了避免任何利益衝突的嫌疑,委員會中最多僅能有 2 名成員來自同一雇主。

在委員會選舉中,若前 5 名得票者中有 3 人來自同一雇主,則其中排名最低者將失去資格,並由第 6 名候選人遞補進入前 5 名;此過程重複進行直到形成合法的委員會為止。

在任期內,若因情況變化導致此規則被打破(例如委員會成員更換工作),則必須有一名或多名成員辭職以解決問題,隨後產生的空缺可按正常程序填補。

移除核心團隊成員

在特殊情況下,可能需要違背意願地將某人從核心團隊中移除。(例如:嚴重且持續違反行為準則。)這可以透過指導委員會投票達成,但與其他指導委員會投票不同,這需要至少三分之二的多數支持。若 5 名成員參與投票,代表 3:2 的票數不足以通過,必須至少有 4:1 的票數支持方能成功。此外,這是指導委員會唯一不可委託的權力,且在不信任投票進行期間不得行使此權力。

若被移除的核心團隊成員同時也是指導委員會成員,則他們也將被移除出指導委員會。

不信任投票

在特殊情況下,核心團隊可以透過不信任投票移除在職的委員會成員,或整個委員會。

不信任投票由核心團隊成員在合適的專案通訊管道公開提出發起,並在該提案提出一週內由另一位核心團隊成員附議即觸發。

投票持續兩週。核心團隊成員進行贊成或反對投票。若至少三分之二的投票者表示不信任,則投票成功。

不信任投票有兩種形式:針對單一成員,以及針對整個委員會。發起不信任投票時必須明確指定類型。若針對單一成員的投票成功,則該成員被移除,其空缺按通常方式處理。若針對整個委員會的投票成功,委員會即解散並立即觸發新委員會選舉。

核心團隊

職責

核心團隊是由一群管理 Python 的受信任志工組成。他們承擔了達成專案目標所需的多種角色,特別是那些需要高度信任的角色。他們做出形塑專案未來的決策。

核心團隊成員被期望作為社區的榜樣與專案的守護者,代表社區及所有依賴 Python 的人行事。

在極少數需要介入的情況下,他們會在線上討論或官方 Python 活動中進行干預。

他們對 Python 專案基礎設施擁有權限,包括 Python 專案官網本身、Python GitHub 組織與倉庫、錯誤追蹤系統、郵件列表、IRC 頻道等。

特權

核心團隊成員可參與正式投票,通常用於提名新成員及選舉指導委員會。

成員資格

Python 核心團隊成員展現出:

  • 對 Python 專案哲學的深刻理解
  • 長期且建設性與有助益的貢獻紀錄
  • 對專案目標有顯著貢獻,不限形式
  • 願意投入時間改進 Python 的意願

隨著專案成熟,貢獻不僅限於程式碼。以下是一份不完整的貢獻領域列表,考慮加入核心團隊時可參考,無特定順序:

  • 進行社區管理與推廣
  • 在郵件列表與 IRC 提供支援
  • 分類處理問題單(Triaging tickets)
  • 撰寫修補程式(程式碼、文件或測試)
  • 審查修補程式(程式碼、文件或測試)
  • 參與設計決策
  • 提供特定領域的專業知識(安全、國際化等)
  • 管理持續整合基礎設施
  • 管理伺服器(網站、追蹤系統、文件等)
  • 維護相關專案(替代解釋器、核心基礎設施如套件管理等)
  • 建立視覺設計

核心團隊成員資格是對與 Python 專案哲學與目標一致且持續、有價值之努力的認可。

此資格透過核心團隊投票獲得至少三分之二的支持票,且投票開放一週且未被指導委員會否決而授予。

附註

devguide 提供了一個 建議範本 供此類投票使用。

核心團隊成員時刻尋找有前途的貢獻者,教導他們專案管理方式,並在他們準備好時提交其名字供核心團隊投票。

核心團隊成員資格沒有時間限制。然而,為了讓大眾對維護 Python 的人數有合理的認識,鼓勵停止貢獻的核心團隊成員宣告自己為「非活躍(inactive)」。對於兩年內未做出任何實質貢獻的人員,可能會被要求將自己轉入此類別;若未回應,則會被強制轉入。為了記錄與尊重他們的貢獻,非活躍成員將繼續與活躍核心成員一同列出;若他們稍後恢復貢獻,可隨時切換回活躍狀態。然而,當處於非活躍狀態時,他們將失去投票、提名指導委員會等活躍特權,以及提交權限。

初始活躍核心團隊成員包含目前在 GitHub 上「Python core」團隊 中列出的所有人(僅核心成員可存取),初始非活躍成員則包含所有過去曾有提交權限的其他人。

修改本文檔

本文檔的修改需要核心團隊投票中至少三分之二的絕對多數,投票應開放兩週。

更新說明區塊以及「當前指導委員會」和「委員會選舉歷史」章節中的當前資訊無需投票。

歷史

本文檔的建立

Python 專案由 Guido van Rossum 發起,他擔任「終身仁慈獨裁者」(BDFL) 直至 2018 年 7 月 卸任 為止。

經討論後,提出了多項新治理模式的方案,核心開發者進行了投票決策。整體流程描述於 PEP 8000PEP 8001,其他專案的審視研究則執行於 PEP 8002,各項提案則寫入 801x 系列 PEP 中。最終 PEP 8016 中的提案被 選定 為新的治理模型,並用於建立本 PEP 的初始版本。8000 系列 PEP 作為歷史參考予以保留(特別是 PEP 8016 包含額外的基本原理與當時討論的連結),但本 PEP 現為官方參考,並將遵循本文所述規則演進。

委員會選舉歷史

修訂歷史

  • 2019-04-17:增加了核心開發者投票長度及本文檔修改相關規定。
  • 2024-12-10:採用「多勝選者區塊 STAR」投票進行委員會選舉。
  • 2024-12-10:為不信任投票的附議增加了為期一週的截止期限。

致謝

本 PEP 起始於 PEP 8016,由 Nathaniel J. Smith 與 Donald Stufft 撰寫,基於 Aymeric Augustin 撰寫的 Django 治理文件,並納入了許多其他人的反饋與協助。


原始碼:https://github.com/python/peps/blob/main/peps/pep-0013.rst

最後修改時間:2025-02-01 08:55:40 GMT