專案治理 #

本文件的正式版本,以及下面治理部分定義的角色中的個人和機構列表,包含在 pandas 網站的 專案治理 頁面。

專案 #

pandas 專案(以下簡稱“專案”)是一個隸屬於 501(c)3 NumFOCUS 基金會的開源軟體專案。專案的目標是為 Python 程式語言開發用於資料攝取、資料準備、資料分析和資料視覺化的開源軟體。專案開發的軟體在 BSD(或類似)開源許可下發布,公開開發並在 pandas GitHub 組織下的公共 GitHub 倉庫中託管。專案軟體的例子包括主要的 pandas 程式碼庫和 pandas-stubs 庫。

透過與 NumFOCUS 的隸屬關係,專案有權在美國接受可抵稅的捐贈。

專案由一個分散式開發人員團隊(稱為貢獻者)開發。貢獻者是指對一個或多個專案倉庫貢獻了程式碼、文件、設計或其他工作的個人。任何人都可以成為貢獻者。貢獻者可以隸屬於任何法律實體,也可以不隸屬於任何實體。貢獻者透過提交、審查和討論 GitHub 拉取請求和問題,以及參與 GitHub、郵件列表和其他地方公開的專案討論來參與專案。專案參與的基礎是開放和透明。

以下是主要 pandas 倉庫的當前貢獻者列表

https://github.com/pandas-dev/pandas/graphs/contributors

在 pandas 專案的其他倉庫的日誌中也列出了許多其他貢獻者。

專案社群由專案的所有貢獻者和使用者組成。貢獻者代表更大的專案社群工作,並對社群負責,我們努力使貢獻者和使用者之間的障礙儘可能低。

專案正式隸屬於 501(c)3 NumFOCUS 基金會(https://numfocus.org),該基金會作為其財務贊助方,可能擁有專案商標和其他智慧財產權,協助管理專案捐贈,並充當母法律實體。NumFOCUS 是唯一與專案有正式關係的法律實體(見下文的機構合作伙伴部分)。

治理 #

本節描述了專案的治理和領導模式。

專案治理的基礎是

傳統上,專案領導由 BDFL(Wes McKinney)和一部分貢獻者(稱為核心團隊)提供。核心團隊的積極和持續貢獻已得到認可,他們獲得了專案 GitHub 倉庫的“提交許可權”。通常,所有專案決策都透過核心團隊的共識並結合社群的意見做出。BDFL 可以,但很少選擇,推翻核心團隊的決定,並在某個問題上做出最終決定。

雖然這種方法一直很好地服務於我們,但隨著專案的成長,面臨越來越多的法律和財務決策,並與其他機構互動,我們看到了對更正式的治理模式的需求。今後,專案領導將由 BDFL 和核心團隊組成。我們認為這種治理模式是我們已經在做的事情的正式化,而不是方向的改變。

BDFL #

專案將有一位 BDFL(仁慈的終身獨裁者),目前是 Wes McKinney。作為獨裁者,BDFL 有權為專案做出所有最終決定。作為仁慈的,BDFL 在實踐中選擇將該權力委託給社群討論渠道和核心團隊的共識。預計,並且過去也確實如此,BDFL 將很少行使他的最終權威。因為很少使用,我們將 BDFL 的最終權威稱為“特殊”或“否決”投票。當這種情況發生時,BDFL 的否決通常發生在核心團隊僵局的情況下,或者如果核心團隊要求 BDFL 就某個特定事項做出決定。為了確保 BDFL 的仁慈,專案鼓勵那些不同意 BDFL 總體方向的人分叉專案。BDFL 是核心團隊的主席(見下文),並可根據自己的意願將他對某個特定決定或一組決定的授權委託給任何其他核心團隊成員。

BDFL 可以任命他的繼任者,但預計會諮詢核心團隊的意見。如果 BDFL 無法任命繼任者(例如,由於死亡或疾病),則核心團隊將透過投票選舉繼任者,其中至少 2/3 的核心團隊成員投票贊成選定的繼任者。至少 80% 的核心團隊必須參與投票。如果 BDFL 沒有候選人獲得核心團隊 2/3 的投票,則核心團隊成員應將 BDFL 候選人提議給 NumFOCUS 主要董事會,然後由他們做出最終決定。

核心團隊 #

專案的核心團隊將由貢獻了大量高質量和數量且持續至少一年的專案貢獻者組成。核心團隊的總體作用是透過與 BDFL 合作並聽取社群的意見,確保專案的長期福祉,包括技術和社群方面。

在日常專案活動中,核心團隊作為所有其他貢獻者和社群的同行參與所有討論、程式碼審查和其他專案活動。在這些日常活動中,核心團隊由於其核心團隊成員身份而沒有任何特殊權力或特權。但是,預計由於其貢獻的質量和數量以及對專案軟體的專業知識,核心團隊將為經驗不足的貢獻者提供有用的技術指導和專案方向指導。

核心團隊及其成員在特定情況下扮演特殊角色。特別是,核心團隊可以

核心團隊成員資格 #

要獲得成為核心團隊成員的資格,個人必須是專案貢獻者,並且對專案做出了高質量和大量的貢獻,且持續至少一年。潛在的核心團隊成員由現有核心成員提名,並在詢問潛在成員是否有興趣並願意擔任該職位後,由現有核心團隊投票選出。核心團隊將最初由截至 2015 年末已獲得提交許可權的現有貢獻者組成。

在考慮潛在成員時,核心團隊將以全面的視角審視候選人的貢獻。這包括但不限於程式碼、程式碼審查、基礎設施工作、郵件列表和聊天參與、社群幫助/建設、教育和推廣、設計工作等。我們特意不設定任意的量化指標(例如“在此倉庫提交 100 次”)以避免鼓勵只為指標而工作的行為,而不是為了專案的整體福祉。我們希望在團隊中鼓勵來自不同背景、觀點和才能的多元化,這就是為什麼我們明確不將程式碼定義為評估核心團隊成員資格的唯一指標。

如果核心團隊成員在專案中的活動停止一年,他們將被考慮從核心團隊中移除。在移除之前,BDFL 將與不活躍成員聯絡,以瞭解他們是否計劃恢復積極參與。如果他們不打算恢復積極參與,他們將立即被核心團隊投票移除。如果他們計劃很快恢復積極參與,他們將獲得一年的寬限期。如果他們在此期間沒有恢復積極參與,他們將被核心團隊投票移除,不再有寬限期。所有前核心團隊成員在未來任何時候都可以像其他專案貢獻者一樣再次被考慮為成員。退休的核心團隊成員將被列在專案網站上,以表彰他們活躍於核心團隊的時期。

核心團隊保留將當前成員(BDFL 除外)逐出的權利,如果他們被認為對專案的福祉造成積極損害,並且溝通和衝突解決的嘗試已失敗。

利益衝突 #

預計 BDFL 和核心團隊成員將在各種公司、大學和非營利組織工作。因此,成員可能會有利益衝突。此類利益衝突包括但不限於

所有核心團隊成員(包括 BDFL)應向核心團隊的其他成員披露他們可能擁有的任何利益衝突。在特定問題上有利益衝突的成員可以參與該問題的核心團隊討論,但必須在該問題上回避投票。如果 BDFL 因特定決定而回避,他們將為此決定任命一位替補 BDFL。

核心團隊的私人通訊 #

除非有特殊要求,否則所有核心團隊的討論和活動都將是公開的,並與專案貢獻者和社群進行協作和討論。核心團隊將有一個私人郵件列表,該列表將謹慎使用,僅在特定事項需要隱私時使用。當需要私人通訊和決策時,核心團隊將盡最大努力將這些內容總結給社群,同時刪除不應釋出到公共網際網路的個人/私人/敏感資訊。

分委會 #

核心團隊可以建立分委會,為專案的特定方面提供領導和指導。與整個核心團隊一樣,除非有隱私要求,分委會應以公開和公開的方式開展業務。私人分委會通訊應在核心團隊的主要私人郵件列表上進行,除非另有要求。

問題:如果 BDFL 不屬於某個分委會,他是否仍然擁有否決權?

建議:是的,但他應該任命一個通常扮演該角色的代表,並且只有在委員會不同意該代表的決定且團隊內部無法解決時,才尋求 BDFL 的明確干預。這與 BDFL 為特定決定(或迴避情況)指定的代表不同,後者是 BDFL 實際上將其全部權力移交給了其他人。更像是 Linus Torvalds 使用他的“副手”模式。

NumFOCUS 分委會 #

核心團隊將維持一個目標明確的分委會,以管理其與 NumFOCUS 的互動。

機構合作伙伴和資金 #

BDFL 和核心團隊是專案的主要領導者。除透過作為貢獻者和核心團隊成員參與專案外,任何外部機構、個人或法律實體都無權擁有、控制、篡奪或影響專案。然而,由於機構是專案的主要資金機制,因此正式承認機構參與專案非常重要。這些是機構合作伙伴。

機構貢獻者是作為機構合作伙伴的官方職責的一部分向專案做出貢獻的任何個人專案貢獻者。同樣,機構核心團隊成員是作為機構合作伙伴的官方職責的一部分向專案做出貢獻的任何核心團隊成員。

根據這些定義,機構合作伙伴是美國或其它國家/地區的任何認可的法律實體,該實體至少僱用一名機構貢獻者或機構核心團隊成員。機構合作伙伴可以是營利性或非營利性實體。

機構透過僱用積極為專案做出貢獻的個人作為其官方職責的一部分,從而有資格成為機構合作伙伴。換句話說,機構合作伙伴影響專案的唯一方式是透過積極參與專案的開放開發,與社群中的任何其他貢獻者和核心團隊成員享有同等條件。僅僅在機構環境中使​​用 pandas 軟體或服務並不能使實體成為機構合作伙伴。財務捐贈也不能使實體成為機構合作伙伴。一旦機構有資格成為機構合作伙伴,核心團隊必須提名並批准該合作伙伴關係。

如果現有機構合作伙伴不再有貢獻員工,他們將獲得一年的寬限期,以便其他員工開始做出貢獻。

機構合作伙伴可以透過任何合法途徑自由尋求其在專案工作方面的資金。這可能涉及非營利組織從私人基金會和捐助者那裡籌集資金,或營利性公司構建利用專案軟體和服務的專有產品和服務。機構合作伙伴為從事專案工作而獲得的資金稱為機構資金。然而,機構合作伙伴獲得的任何資金都不能推翻專案 BDFL 和核心團隊。如果某個合作伙伴有資金用於 pandas 工作,而核心團隊決定不推進該工作,則該合作伙伴可以自行推進。然而,在這種情況下,該合作伙伴工作的這部分將不屬於 pandas 傘下,並且不能使用專案商標,以暗示正式關係。

為了認可機構的貢獻,機構合作伙伴有兩個級別,並附帶相應的好處

第一級 = 擁有至少一名機構核心團隊成員的機構

第二級 = 擁有至少一名機構貢獻者的機構

違規 #

不遵守治理檔案條款的行為應根據需要透過公開或私人渠道報告給核心團隊。

更改治理 #

對治理的更改透過 GitHub 拉取請求提交到專案的 治理頁面。然後,拉取請求會根據公眾評論和審查進行完善,目標是在社群達成共識。在此開放期之後,核心團隊成員向核心團隊提議批准更改併合並拉取請求(接受擬議更改),或提議關閉拉取請求而不合並(拒絕擬議更改)。該成員應在提議接受或拒絕的拉取請求中註明最終提交雜湊,並簡要總結拉取請求。至少 80% 的核心團隊必須投票,並且至少 2/3 的投票必須是肯定的才能執行擬議的操作(投票的零散部分向上取整到最接近的整數)。由於 BDFL 在專案中的最終權威,BDFL 有權單獨接受或拒絕更改,或推翻核心團隊的決定。