SciPy 專案治理#
本文档的目的是使 SciPy 專案在正常和特殊情況下使用的治理流程正式化,並闡明如何做出決策,以及我們的社群各個要素如何互動,包括開源協作開發與營利或非營利實體可能資助的工作之間的關係。
專案#
SciPy 專案(以下簡稱「本專案」)是一個開源軟體專案。本專案的目標是開發用於 Python 科學計算的開源軟體,特別是 scipy
套件。本專案開發的軟體根據 BSD(或類似)開源許可證發布,公開開發並託管在 scipy
GitHub 組織下的公共 GitHub 儲存庫中。
本專案由一個分散式開發者團隊開發,稱為貢獻者。貢獻者是指為本專案貢獻程式碼、文件、設計或其他工作的人。任何人都可以成為貢獻者。貢獻者可以隸屬於任何法律實體或不隸屬於任何法律實體。貢獻者透過提交、審閱和討論 GitHub Pull Request 和 Issues,以及參與 GitHub、論壇和其他管道上的公開專案討論來參與專案。專案參與的基礎是開放性和透明度。
專案社群由所有貢獻者和專案使用者組成。貢獻者代表更大的專案社群工作並對其負責,我們努力盡可能降低貢獻者和使用者之間的障礙。
本專案不是法律實體,目前也沒有與任何法律實體建立正式關係。
治理#
本節描述本專案的治理和領導模式。
專案治理的基礎是
開放性和透明度
積極貢獻
機構中立性
傳統上,專案領導由貢獻者的一個子集提供,稱為核心開發者,他們的積極和持續貢獻已獲得認可,並獲得了專案 GitHub 儲存庫的「提交權限」。一般來說,所有專案決策都是透過核心開發者之間的共識並聽取社群的意見來做出的。
雖然這種方法一直以來都對我們很有幫助,但隨著專案的發展,我們看到需要更正式的治理模式。SciPy 核心開發者表示傾向於包含 BDFL(終身仁慈獨裁者)的領導模式。因此,未來本專案的領導將由 BDFL 和指導委員會組成。
BDFL#
本專案將設有一位 BDFL(終身仁慈獨裁者),目前是 Pauli Virtanen。作為獨裁者,BDFL 有權對本專案做出所有最終決定。作為仁慈的獨裁者,BDFL 在實踐中選擇將該權力讓位於社群討論管道和指導委員會的共識(見下文)。預計且過去的情況也一直是如此,BDFL 將很少主張其最終權威。由於很少使用,我們將 BDFL 的最終權威稱為「特殊」或「優先」投票權。當這種情況發生時,BDFL 優先權通常發生在指導委員會陷入僵局,或指導委員會要求 BDFL 對特定事項做出決定的情況下。為了確保 BDFL 的仁慈性,如果其他人不同意 BDFL 採取的總體方向,本專案鼓勵其他人 fork 本專案。BDFL 可以自行決定將其在特定決策或一系列決策上的權力委託給任何其他委員會成員。
BDFL 可以任命其繼任者,但預計將就此決定諮詢指導委員會。如果 BDFL 無法任命繼任者,指導委員會將做出此決定 - 最好透過共識,但如果需要,則透過多數票。
請注意,BDFL 可以隨時辭職,並且出於善意,也會聽取要求這樣做的嚴肅呼籲。另請注意,BDFL 更像是一個備用決策角色,而不是董事/CEO 的角色。
指導委員會#
本專案將設有一個指導委員會,由專案貢獻者組成,這些貢獻者在品質和數量上都做出了實質性的貢獻,並且持續至少一年。委員會的總體作用是透過與 BDFL 合作並聽取社群的意見,確保專案的長期福祉,無論是技術上還是作為一個社群。
委員會將設有一名主席,其任務是保持委員會和專案運作的組織方面步入正軌。委員會還將為專案任命一名發行經理,該經理對一個或多個發行版本負最終責任。
在日常專案活動中,委員會成員以與所有其他貢獻者和社群同等的身份參與所有討論、程式碼審查和其他專案活動。在這些日常活動中,委員會成員不因其委員會成員身份而擁有任何特殊權力或特權。但是,預計由於其貢獻的品質和數量以及他們對專案軟體和服務的專業知識,委員會成員將為可能經驗不足的貢獻者提供有用的指導,無論是技術方面還是專案方向方面。
指導委員會及其成員在某些情況下扮演著特殊的角色。特別是,委員會可以
就專案的總體範圍、願景和方向做出決策。
就與其他組織或個人的策略合作做出決策。
就特定的技術問題、功能、錯誤和 pull request 做出決策。他們是指導程式碼審查流程和合併 pull request 的主要機制。
就本專案運行的服務做出決策,並為了本專案和社群的利益而管理這些服務。
在常規社群討論未能在合理的時間範圍內就某個問題達成共識時做出決策。
更新政策文件,例如本文档。
委員會成員資格#
要獲得擔任指導委員會成員的資格,個人必須是專案貢獻者,其貢獻在品質和數量上都具有實質性,並且持續至少一年。潛在的委員會成員由現任委員會成員提名,並在詢問潛在成員是否有興趣且願意擔任該職務後,由現任委員會投票決定。委員會最初將由截至 2017 年 1 月在過去兩年中一直非常活躍的現任核心開發者組成。
在考慮潛在成員時,委員會將全面審視候選人的貢獻。這將包括但不限於程式碼、程式碼審查、基礎架構工作、論壇和聊天參與、社群幫助/建設、教育和推廣、設計工作等。我們故意不設定任意的量化指標(例如「在此儲存庫中提交 100 次」),以避免鼓勵為指標而為之的行為,而不是專案的整體福祉。我們希望在我們的團隊中鼓勵背景、觀點和才能的多樣性,這就是為什麼我們明確地不將程式碼定義為評估委員會成員資格的唯一指標。
如果委員會成員在一年內未積極參與專案,則將考慮將其從委員會中除名。在除名之前,將聯繫不活躍的成員,詢問他們是否計劃重返積極參與。如果沒有,他們將在委員會投票後立即被除名。如果他們計劃很快重返積極參與,他們將獲得一年的寬限期。如果他們在該時間段內沒有重返積極參與,他們將在沒有進一步寬限期的情況下被委員會投票除名。所有前委員會成員都可以在未來的任何時候再次被考慮擔任成員,就像任何其他專案貢獻者一樣。退休的委員會成員將在專案網站上列出,以表彰他們在委員會中活躍的時期。
如果委員會成員被認為對專案的福祉具有積極的危害,並且溝通和衝突解決的嘗試失敗,則委員會保留驅逐現任成員(BDFL 除外)的權利。
現任指導委員會成員的列表維護在 關於我們 頁面上。
委員會主席#
主席將由指導委員會任命。主席可以一直擔任下去,只要他們願意,但可以隨時辭職,並且會聽取要求這樣做的嚴肅呼籲(類似於 BDFL 角色)。主席將負責
啟動專案技術方向的審查(如 SciPy Roadmap 所述),每年兩次,大約在 4 月中旬和 10 月中旬。
在每年的同一時間,總結前一段時間的任何相關組織更新和問題,並在論壇上徵求回饋/建議。
確保指導委員會的組成保持最新。
確保指導委員會私下討論的事項在論壇上得到總結,以使社群了解情況。
確保其他重要的組織文件(例如,行為準則、財政贊助協議)在新增後保持最新。
發行經理#
發行經理對發行版本負最終責任。這包括
提議和決定發行時間。
在對特定變更或功能沒有共識的情況下,決定發行版本的內容。
建立發行版本並在相關公共管道上宣布。
有關這些職責在實踐中的具體內容,請參閱 製作 SciPy 發行版本。
利益衝突#
預計 BDFL 和委員會成員將受僱於廣泛的公司、大學和非營利組織。因此,成員可能存在利益衝突。此類利益衝突包括但不限於
財務利益,例如投資、僱傭或專案外的承包工作,可能會影響他們在本專案上的工作。
存取其雇主的專有資訊,這些資訊可能會洩露到他們在本專案中的工作中。
包括 BDFL 在內的所有委員會成員應向委員會的其他成員披露他們可能存在的任何利益衝突。在特定問題中存在利益衝突的成員可以參與委員會關於該問題的討論,但必須在該問題的投票中迴避。如果 BDFL 因特定決策而迴避,委員會將為該決策任命一名替代 BDFL。
委員會的私人溝通#
除非有特別要求,否則所有委員會討論和活動都將公開進行,並與專案貢獻者和社群協作和討論。委員會將有一個私人郵件列表,該列表將謹慎使用,僅在特定事項需要隱私時使用。當需要私人溝通和決策時,委員會將盡力在刪除不應發佈到公共互聯網的個人/私人/敏感資訊後,向社群總結這些溝通和決策。
委員會決策#
如果指導委員會需要做出正式決策,那麼他們將使用 Apache 基金會投票流程 的一種形式。這是共識的正式版本,其中 +1 票表示同意,-1 票表示否決(並且必須附帶理由,如上所述),如果希望表達意見但不註冊完全否決權,也可以投部分票(例如 -0.5、+0.5)。這些數字投票也經常被非正式地用作了解人們對某些問題的總體感受的方式,通常不應將其視為正式投票。只有在明確聲明的情況下才會進行正式投票,如果確實發生這種情況,則應將投票開放足夠長的時間,以便所有感興趣的委員會成員都有機會回應 - 至少一周。
在實踐中,我們預計對於大多數指導委員會決策(例如,投票選舉新成員),更非正式的流程就足夠了。
機構合作夥伴和資金#
指導委員會是專案的主要領導。除了作為貢獻者和委員會成員參與專案外,沒有任何外部機構、個人或法律實體有能力擁有、控制、篡奪或影響專案。但是,由於機構可以是專案的重要資助機制,因此正式承認機構參與專案非常重要。這些是機構合作夥伴。
機構貢獻者是指作為其在機構合作夥伴的正式職責的一部分為專案做出貢獻的任何個人專案貢獻者。同樣,機構委員會成員是指作為其在機構合作夥伴的正式職責的一部分為專案做出貢獻的任何專案指導委員會成員。
根據這些定義,機構合作夥伴是指任何國家/地區的任何公認的法律實體,該實體僱用至少 1 名機構貢獻者或機構委員會成員。機構合作夥伴可以是營利性或非營利性實體。
機構透過僱用作為其正式職責的一部分積極為本專案做出貢獻的個人,而有資格成為機構合作夥伴。換句話說,合作夥伴影響專案的唯一方法是積極參與專案的開放式開發,與貢獻者和委員會成員社群的任何其他成員條件相同。僅在機構環境中使用專案軟體並不能使實體成為機構合作夥伴。財務捐贈不能使實體成為機構合作夥伴。一旦機構有資格成為機構合作夥伴,指導委員會必須提名並批准合作夥伴關係。
如果在某個時候,現有的機構合作夥伴停止擁有任何貢獻員工,那麼一年的寬限期開始。如果在一年寬限期結束時,他們繼續沒有任何貢獻員工,那麼他們的機構合作夥伴關係將失效,恢復合作夥伴關係將需要經歷新合作夥伴關係的正常流程。
機構合作夥伴可以自由地透過任何合法手段為他們在本專案上的工作尋求資金。這可能涉及非營利組織從私人基金會和捐助者籌集資金,或營利性公司建立利用專案軟體和服務的專有產品和服務。機構合作夥伴為從事本專案工作而獲得的資金稱為機構資金。但是,機構合作夥伴獲得的任何資金都不能凌駕於指導委員會之上。如果合作夥伴有資金從事 SciPy 工作,而委員會決定不將該工作作為專案進行,則合作夥伴可以自由地自行進行。但是,在這種情況下,合作夥伴工作的該部分將不屬於 SciPy 範疇,並且不得以任何暗示正式關係的方式使用專案商標。
機構合作夥伴的福利是
在 SciPy 網站和演講中致謝
能夠在 SciPy 網站和演講中感謝自己的資金來源
能夠透過其委員會成員的參與來影響專案
邀請委員會成員參加 SciPy 開發者會議
現任機構合作夥伴的列表維護在 關於我們 頁面上。
文件歷史記錄#
致謝#
本文档的很大一部分改編自 Jupyter/IPython 專案的治理文件 和 NumPy 的治理文件。
許可證#
在法律允許的範圍內,作者已根據 CC-0 公共領域貢獻/許可證,放棄了 SciPy 專案治理文件的所有版權和相關或鄰近權利。