主要治理文件#

本文件的正式版本,以及治理章節中定義的角色中的個人和機構列表,包含在專案治理儲存庫中:

matplotlib/governance

專案#

Matplotlib 專案(以下簡稱「專案」)是一個隸屬於 NumFOCUS 基金會的開放原始碼軟體專案。本專案的目標是開發開放原始碼軟體,並部署用於資料視覺化的開放且公開的網站和服務。本專案開發的軟體是以 BSD(或類似的寬鬆)開放原始碼許可證發布,在 Matplotlib GitHub 組織下的公開 GitHub 儲存庫中公開開發和託管。專案軟體的範例包括用於資料視覺化的 Matplotlib 函式庫及其相關的擴充功能和依賴關係。本專案運行的服務包括在 matplotlib.org 網域下託管的公開網站和網路服務。

本專案由一個分散的開發人員團隊(稱為貢獻者)開發。貢獻者是指為一個或多個專案儲存庫貢獻程式碼、文件、設計或其他工作的人員。貢獻者在專案許可證中也被稱為「Matplotlib 開發團隊(MDT)」。任何人都可以成為貢獻者。貢獻者可以隸屬於任何法人實體,或不隸屬於任何法人實體。貢獻者透過提交、審查和討論 GitHub Pull Requests 和 Issues,以及參與 GitHub、Discourse、Hackmd、Gitter 聊天室和郵件列表上的公開專案討論來參與專案。專案參與的基礎是開放性和透明度。

例如,以下是主要 Matplotlib 儲存庫目前貢獻者的部分列表:

matplotlib/matplotlib

在專案的其他儲存庫的記錄中也有許多其他的貢獻者。這也明顯不包括程式碼以外的項目的貢獻,例如報告和評論問題,因此僅是視為貢獻者的個人的一個子集。

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

本專案正式隸屬於 NumFOCUS 基金會(http://numfocus.org),這是一個受美國國稅局法典第 501(c)(3) 條約束的非營利組織。NumFOCUS 作為其財務贊助者,可以持有專案商標和其他智慧財產權,協助管理專案捐款,並充當母法人實體。NumFOCUS 是唯一與本專案有正式關係的法人實體(請參閱下面的機構合作夥伴章節)。

治理#

本章節說明本專案的治理和領導模式。

專案治理的基礎是:

  • 開放性與透明度

  • 積極貢獻

  • 機構中立性

專案領導最初由原始作者 John D. Hunter 提供。在他於 2012 年過世前不久,領導權轉移給 Michael Droettboom,後者又邀請 Thomas A Caswell 擔任共同領導。另外,一部分稱為「開發人員」的貢獻者也提供了領導,他們的重大或持續的貢獻已透過他們獲得專案儲存庫的「提交權限」而獲得認可。一般來說,所有專案決策都是由開發人員之間在社群的意見下達成共識。

雖然這種方法對我們有很好的幫助,但隨著專案的成長,以及面臨更多的法律和財務決策並與其他機構互動,我們認為有必要建立更正式的治理模式。展望未來,專案領導將由專案領導、數名副領導和指導委員會組成。我們認為這種治理模式是我們已經在做的事情的正式化,而不是改變方向。

專案領導#

本專案將有一位專案領導(PL),目前由 Thomas A Caswell 擔任。專案領導有權對本專案做出所有最終決策。實際上,專案領導選擇將該權力委託給社群討論頻道、副專案領導和指導委員會(請參閱下文)的共識。預期(並且過去一直如此)專案領導只會極少數地行使他們的最終權力。由於很少使用,我們將專案領導的最終權力稱為「特殊」或「凌駕」投票。當它發生時,專案領導的凌駕通常發生在指導委員會陷入僵局,或指導委員會要求專案領導就特定事項做出決策的情況下。

專案領導是指導委員會(請參閱下文)的主席,並且可以自行決定將其對特定決策或一系列決策的權力委託給任何其他委員會成員。專案領導負責確保所有需要投票的指導委員會活動都有適當的文件記錄。

專案領導可以任命他們的繼任者,但預期指導委員會會諮詢該決策。如果專案領導無法任命繼任者,指導委員會將向 NumFOCUS 主委員會提出建議。雖然指導委員會和 NumFOCUS 主委員會將在專案領導的選拔過程中密切合作,但 NumFOCUS 主委員會將做出最終決定。在特殊情況下,NumFOCUS 委員會可以將專案領導從專案中除名。

指導委員會#

本專案將有一個指導委員會,由品質和數量均達實質性,且持續至少一年的專案貢獻者組成。委員會的整體作用是透過與專案領導合作並從社群獲得意見,確保專案在技術、財務和社群方面的長期福祉。

任何委員會成員不得透過僱用或承包向同一個人報告。

在日常專案活動中,委員會成員會以與所有其他貢獻者和社群相同的身分參與所有討論、程式碼審查和其他專案活動。在這些日常活動中,委員會成員不因其在委員會中的成員身分而擁有任何特殊權力或特權。然而,由於其貢獻的品質和數量,以及他們對專案軟體和服務的專業知識,預期委員會成員會為可能經驗較少的貢獻者提供有用的指導,無論是在技術方面還是專案方向方面。

指導委員會及其成員在某些情況下發揮特殊作用。特別是,委員會可以:

  • 開發資金來源並決定如何使用資金(請參閱下面的財務小組委員會)。

  • 決定專案的整體範圍、願景和方向。

  • 決定與其他組織或個人的策略性合作。

  • 決定由本專案運行的服務,並為本專案和社群的利益管理這些服務。

  • 在一般社群討論無法在合理的時間範圍內就問題達成共識時做出決策。

  • 授予或撤銷提交權限。

指導委員會將由 5 到 7 人組成,其中包括專案領導。加入指導委員會是一種責任,而不是對長期貢獻者的認可。

委員會成員#

要取得擔任指導委員會成員的資格,個人必須是專案貢獻者,其貢獻在品質和數量上均達到實質性,且持續至少一年。潛在的委員會成員由現任委員會成員提名,並在詢問潛在成員是否有意願擔任該職務後由現任委員會投票決定。委員會最初將由專案領導從符合上述條件的現任開發人員中提名組成。

在考慮潛在成員時,委員會將以全面的視角審視候選人的貢獻。這將包括但不限於程式碼、程式碼審查、基礎架構工作、郵件列表和聊天參與、社群建立、使用者和開發人員支援、教育和推廣、補助金撰寫以及設計工作。我們刻意不設定量化指標(例如「在這個儲存庫中有 100 次提交」),以避免鼓勵針對指標而非專案整體福祉的行為。我們希望在我們的團隊中鼓勵多元化的背景、觀點和才能,這就是為什麼我們明確地不將程式碼定義為評估委員會成員資格的唯一指標。

當受邀加入指導委員會時,貢獻者承諾服務 2 年。在兩年結束時,在委員會其他成員的同意下,他們可以選擇重新加入委員會。如果他們選擇不重新加入委員會,則使用上述流程招募新成員。

指導委員會成員(專案領導除外)將分為 2 個任期錯開 1 年的相等類別。這將有助於隨著時間的推移,維持指導委員會的持續性。

指導委員會成員可以隨時辭職。如果委員會成員閒置 2 個月,專案領導會與他們聯繫,以了解他們是否計畫重返積極參與。如果沒有,將要求他們辭職。如果委員會成員表示他們打算再次活躍,但在 1 個月後仍未這樣做,委員會可以投票將他們除名。

如果委員會成員提前離開委員會,可以使用與上述相同的流程更換他們。他們的替代人選將加入同一類別,並完成剩餘的 2 年任期。

只要委員會總人數(包括專案領導)在 5 到 7 人之間,每個類別可以在 2 到 3 名成員之間波動。如果一個類別太小,則必須招募額外的成員。

所有前委員會成員將來可以隨時被考慮再次加入,就像任何其他專案貢獻者一樣。已退休的委員會成員將在專案網站上列出,以表彰他們在委員會中活躍的時期。

委員會保留在被認為對專案的福祉造成實際損害,且透過多數決的投票方式進行溝通和解決衝突的嘗試失敗後,將任何人(包括委員會成員)從專案的線上空間中驅逐的權利。

利益衝突#

預期專案負責人(PL)、副專案負責人(DPL)和委員會成員將受僱於各類公司、大學和非營利組織。因此,成員之間可能存在利益衝突。此類利益衝突包括但不限於:

  • 在專案之外的財務利益,例如投資、聘僱或承包工作,這些利益可能會影響他們在專案上的工作。

  • 取得其雇主擁有的專有資訊,這些資訊可能洩露到他們在專案中的工作。

委員會的所有成員(包括專案負責人)應向委員會的其他成員揭露他們可能存在的任何利益衝突。在特定議題中存在利益衝突的成員可以參與委員會關於該議題的討論,但必須迴避該議題的投票。如果專案負責人因特定決策而迴避,他們將任命一位代理專案負責人來處理該決策。

委員會的私人溝通#

除非有特別要求,否則委員會的所有討論和活動都將公開進行,並透過正常的溝通管道與專案貢獻者和社群協作和討論。委員會將有一個私人郵件列表,該列表將謹慎使用,僅在特定事項需要保密時使用。當需要私人溝通和決策時,委員會將盡力在刪除不應發佈到公共網路的個人/私人/敏感資訊後,向社群總結這些內容。

小組委員會#

委員會可以建立小組委員會,為專案的特定方面提供領導和指導。與整個委員會一樣,小組委員會應以公開和公共的方式進行其業務,除非有特別要求保密。私人小組委員會的溝通應在委員會的主要私人郵件列表上進行,除非有特別要求或有外部成員。

NumFOCUS 小組委員會#

委員會將維持一個重點明確的小組委員會,以管理其與 NumFOCUS 的互動,其中將包括外部成員。

  • NumFOCUS 小組委員會由 4 人組成,他們管理透過 NumFOCUS 提供的專案資金。預期這些資金的使用方式將符合 NumFOCUS 的非營利使命以及由全體委員會確定的專案方向。

  • 這個小組委員會不得對專案的方向、範圍或技術方向做出決策。

  • 這個小組委員會將有 4 名成員,其中至少 2 名也是指導委員會的成員,其中 1 名將是指導委員會的外部成員。沒有小組委員會成員可以透過聘僱或承包工作向任何其他小組委員會成員的同一人報告。這避免了有效的多數票落在一個人身上。

行為準則小組委員會#

這個委員會應由 3 到 7 人組成,其中至少一人是指導委員會的成員,至少一人不是。這個委員會負責處理在我們的數位和實體空間中發生的行為準則報告。他們將維護自己的私人郵件列表和報告地址。關於如何處理行為準則的詳細政策將在其他地方記錄。

副專案負責人#

副專案負責人(DPL)在其責任範圍內擁有預先委託的決策權。與專案負責人一樣,副專案負責人應努力在行使其權力之前達成共識。副專案負責人的決策可以向專案負責人申訴,但假設專案負責人將尊重副專案負責人的決定,除非在特殊情況下。副專案負責人之間的爭議將由專案負責人解決。

副專案負責人由指導委員會成員提名,並由指導委員會以多數票任命,任期為 1 年(發佈管理員除外),從其任命日起算。在每個 1 年任期時,副專案負責人可以選擇繼續任職一年或卸任。指導委員會可以透過超級多數票罷免副專案負責人。

根據指導委員會和專案負責人的決定,副專案負責人的職位可能不會被填補,在這種情況下,責任將回歸到專案負責人。指導委員會可以透過多數票建立新的副專案負責人職位、取消未填補的副專案負責人職位或更改職位的描述。

任何目前活躍的貢獻者都有資格被考慮擔任副專案負責人,並且一個人可以同時擔任多個副專案負責人。

專案特定負責人#

Matplotlib 在其保護傘下以及在 Matplotlib github 組織上託管了許多特定領域的套件。這些專案中的每一個都將有自己的專案負責人,他們可以按照自己的意願運行專案,並遵守 Matplotlib 行為準則。

如果專案希望託管在 GitHub 上的 Matplotlib 組織中,他們可以向指導委員會提出請願,並以簡單多數票通過。專案可以隨時離開該組織,並可以透過指導委員會 2/3 多數票從該組織中移除。

機構合作夥伴和資金#

專案負責人和指導委員會是專案的主要領導者。除了作為貢獻者和委員會成員參與專案外,沒有任何外部機構、個人或法人實體有能力擁有、控制、篡奪或影響專案。然而,由於機構是專案的主要資金機制,因此正式承認機構對專案的參與非常重要。這些是機構合作夥伴。

機構貢獻者是指作為機構合作夥伴正式職責的一部分為專案做出貢獻的任何個人專案貢獻者。同樣,機構委員會成員是指作為機構合作夥伴正式職責的一部分為專案做出貢獻的任何專案指導委員會成員。

根據這些定義,機構合作夥伴是指在美國或其他地方的任何公認法人實體,該實體僱用了至少一名機構貢獻者或機構委員會成員。機構合作夥伴可以是營利性或非營利性實體。

機構透過僱用作為其正式職責一部分積極為專案做出貢獻的個人,有資格成為機構合作夥伴。換句話說,機構合作夥伴影響專案的唯一方法是積極參與專案的開放開發,並與社群中任何其他貢獻者和委員會成員平等的條款。僅在機構環境中使用 Matplotlib 軟體並不能使實體成為機構合作夥伴。財務捐贈不能使實體成為機構合作夥伴。一旦機構有資格成為機構合作夥伴,指導委員會必須提名並批准該合作夥伴關係。

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

機構合作夥伴可以透過任何合法手段為其在專案上的工作尋求資金。這可能涉及非營利組織從私人基金會和捐助者籌集資金,或營利性公司建立利用專案軟體和服務的專有產品和服務。機構合作夥伴為專案工作而獲得的資金稱為機構資金。但是,機構合作夥伴獲得的任何資金都不能凌駕於專案負責人和指導委員會之上。如果合作夥伴有資金從事 Matplotlib 工作,而委員會決定不將該工作作為專案進行,則合作夥伴可以自由地自行進行。然而,在這種情況下,合作夥伴工作的這部分將不在 Matplotlib 的保護傘下,並且不能以暗示正式關係的方式使用專案商標。

根據贊助等級,機構至少需要提供

  • 每年 6 人/月的付費工作時間,給予一名或多名 Matplotlib 維護者或任何 Matplotlib 團隊或活動的定期貢獻者

才能成為機構合作夥伴。除了贊助文件中描述的贊助商確認外,機構合作夥伴還可以

  • 在 Matplotlib 網站、演講和 T 恤上宣傳他們自己的資金來源。

變更治理文件#

對治理文件的變更透過 GitHub 發起提取請求,提交至專案的治理文件 GitHub 儲存庫,網址為 matplotlib/governance。然後,根據公開評論和審查來完善提取請求,目標是社群達成共識。在這個公開期之後,指導委員會成員向指導委員會提議批准變更並合併提取請求(接受擬議的變更),或提議關閉提取請求而不合併(拒絕擬議的變更)。成員應在擬議接受或拒絕的提取請求中說明最終提交雜湊,並簡要總結提取請求。全體指導委員會必須投票,且至少 2/3 的票數必須為肯定,才能執行擬議的行動(投票數的小數點向上取整到最接近的整數)。由於專案負責人在專案中擁有最終權力,因此專案負責人有權單獨行動來接受或拒絕變更,或推翻指導委員會的決策。