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

Python 增強提案 (Python Enhancement Proposals)

PEP 609 – Python Packaging Authority (PyPA) 管理架構

作者:
Dustin Ingram <di at python.org>, Pradyun Gedam <pradyunsg at gmail.com>, Sumana Harihareswara <sh at changeset.nyc>
贊助人:
Paul Ganssle <paul at ganssle.io>
討論於:
Discourse 討論串
狀態:
作用中
類型:
流程
主題:
管理 (Governance), 軟體包裝 (Packaging)
建立日期:
2019年11月5日
公告歷史:
2019年11月5日

目錄

摘要

本文描述了 Python Packaging Authority (PyPA) 的管理模型。該模型密切參考了現有的非正式實踐,旨在釐清 PyPA 的運作方式,並為 PyPA 建立透明的正式流程。

原理

Python Packaging Authority (PyPA) 是一個協作社群,負責維護並推進許多與 Python 軟體包裝相關的專案。透過 PyPA 開發的軟體與標準,被用於包裝、共享與安裝 Python 軟體,並與可下載 Python 軟體的索引(例如 Python Package Index,即 PyPI)進行互動。

目前,PyPA 是一個非正式且定義鬆散的組織,缺乏真正的權威性,且將特定專案納入 PyPA 或建立新專案的做法一直是以臨時、單次的方式進行。同樣地,PyPA 的個人成員資格也沒有明確定義。

雖然這種模型在過去對 PyPA 來說勉強可行,但它導致組織缺乏穩定生態系統的某些特徵,即缺乏明確且透明的決策流程。本 PEP 旨在透過定義 PyPA 的管理模型來糾正這一點。

術語

本 PEP 中使用的個人貢獻者群體相關術語

PyPA 成員:
PyPA 組織中,至少擁有一個專案的分類權限 (triage bit) 或提交權限 (commit bit) 的任何人。
PyPA 提交者:
在 PyPA 組織中,至少擁有一個專案提交權限的任何人,這應該對應於 PyPA-Committers 郵件列表上的所有人。
PyPA 社群:
任何對 PyPA 活動感興趣並希望關注、參與貢獻或提出建議的人。
Packaging-WG 成員:
Packaging-WG Wiki 頁面所述。為求明確:Packaging-WG 與 PyPA 之間沒有正式關係。將此群體包含在此清單中僅是為了將其與 PyPA 區分開來。

目標

以下章節正式化了 PyPA 與此管理模型的目標(以及非目標)。

PyPA 的目標

這些目標是 PyPA 存在的主要動力。儘管大多數目標尚未明確定義,但它們在很大程度上已經在執行中。

為 PyPA 下現有的專案提供支援

若某個專案需要額外支援,或不再有活躍的維護者,PyPA 將確保該專案能持續獲得必要的支援以服務使用者。

促進 PyPA 專案標準的建立與採納

PyPA 應盡可能透過下述管理流程,致力於 PyPA 專案之間的標準化與協調。PyPA 專案預期應遵守由 PyPA 維護的相關規範。

引導影響多個 PyPA 專案的決策

當提議進行影響整個生態系統的變更時,PyPA 社群(特別是 PyPA 成員)應提供意見、見解與經驗。

決定哪些專案應受 PyPA 的指導

例如:從社群接收新專案、在 PyPA 內有機地建立專案等。

強制執行所有專案對行為準則的遵守

這通常意味著以身作則,但偶爾也可能意味著更明確的調解。

PyPA 的非目標

這些是明確「不是」PyPA 目標的特定事項。

決定誰是或不是 PyPA 成員

這應由個別專案的成員決定,因為他們會為其專案增加新成員。隸屬於 PyPA 組織的專案維護者身份會自動轉化為 PyPA 的成員資格。

微觀管理個別專案

只要專案遵守行為準則並遵循 PyPA 支援的規範,PyPA 應僅關注大規模、影響整個生態系統的變更。

開發與維護獨立的行為準則

PyPA 專案遵循 PSF 行為準則

PyPA 管理模型的目標

這些是管理模型旨在實現的新目標。

PyPA 會員資格的透明度

為有關 PyPA 專案成員資格的決策提供透明的流程。

記錄 PyPA 對 PEP 的使用

正式記錄 PyPA 如何使用 Python 增強提案 (PEPs),以維護由 PyPA 定義的互通性規範。

流程

PyPA 活動的流程概述如下

規範

PyPA 將使用 PEP 來定義並變更由 PyPA 維護的互通性規範。因此,Python 指導委員會 (Steering Council) 對這些互通性規範的採納擁有最終決定權。

預期(但非強制)Python 指導委員會將權限下放給 PyPA 社群內的個人,以發起並/或批准/拒絕與包裝互通性規範相關的 PEP。在撰寫本文時(2020 年 6 月),Python 指導委員會針對當前活躍的包裝互通性規範已有常態性授權

提議並更新互通性規範的流程細節描述於 PyPA 規範文件中。

治理

PyPA 提交者投票

PyPA 成員可以在公開的 PyPA 通訊管道上提出提案並發起投票。當有 PyPA 提交者(而非提案者)附議該提案時,將觸發 PyPA 提交者投票。

提案將在 PyPA-Committers 郵件列表上進行為期 7 天的投票。每位 PyPA 提交者可投票一次,並可選擇 +1-1。若記錄的票數中至少有三分之二為 +1,則投票通過。

以下類型的提案需要且僅限於 PyPA 提交者投票

將專案加入 PyPA

提議接受一個專案進入 PyPA 組織。此提案不得遭到該專案現有維護者的反對。

在 PyPA 中建立新專案

提議在 PyPA 組織中建立新的工具/專案。

從 PyPA 移除專案

提議從 PyPA 組織中移除一個專案。

更新管理/規範流程

提議變更 PyPA 的運作方式,包括但不限於對其規範與管理流程的變更,以及本 PEP 的變更。

離開 PyPA

屬於 PyPA 組織一部分的專案,可以請求離開 PyPA。

此類請求可由該專案的提交者在 PyPA-Committers 郵件列表上提出,且必須明確說明要將儲存庫轉移給哪個 GitHub 使用者/組織。

若該請求在 7 天內未遭到該專案其他提交者的反對,則該專案將離開 PyPA,並按請求轉移出 PyPA 組織。

行為準則的執行

屬於 PyPA 組織一部分的每個專案都遵循 PSF 行為準則,包括其事件報告指南與執行程序。

PyPA 成員有責任以身作則。PyPA 成員有時可能需要在其專案中更明確地調解行為,且屬於 PyPA 組織一部分的每個專案都必須指定至少一名 PyPA 成員,以作為行為準則事件發生時的聯繫窗口。若獲知任何涉及其專案的行為準則事件,PyPA 成員應將該事件上報至 PSF 行為工作小組 (Conduct WG),以便記錄並尋求潛在的協助。


來源:https://github.com/python/peps/blob/main/peps/pep-0609.rst

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