治理

本文檔描述專案的規則和治理方式。專案的所有開發人員和 Prometheus 社群都應遵循本文檔。此治理文件中使用的常用術語列於下方

  • 團隊成員:私人 prometheus-team Google 群組的任何成員。

  • 維護者:維護者領導個別專案或其部分(MAINTAINERS.md)。

  • 專案:Prometheus GitHub 組織中的單一儲存庫稱為專案。

  • Prometheus 專案:在此治理下執行的所有活動的總和,關於一個或多個儲存庫或社群。

價值觀

Prometheus 開發人員和社群應遵循 CNCF 章程中定義的價值觀,包括 CNCF 行為準則。此外,Prometheus 社群致力於友善、有效地提供回饋意見,並建立一個歡迎的環境。Prometheus 開發人員通常以共識決策,只有在無法達成共識時才以多數決來解決衝突。

專案

每個專案都必須有一個 MAINTAINERS.md 檔案,其中至少有一位維護者。如果專案有發佈流程,則應提供權限和文件,以便多人可以執行發佈。發佈應在 prometheus-users 郵件論壇上發佈。任何新專案應先在 開發人員郵件論壇上根據下方列出的投票程序提出。當專案不再相關時,應將其移至 prometheus-junkyard GitHub 組織。

決策

團隊成員

團隊成員身分可以授予至少 3 個月以來對 Prometheus 專案做出持續貢獻的人。這通常以程式碼改進和/或文件方面的顯著工作形式呈現,但也可能考慮到組織活動或使用者支援。

任何現有成員都可以透過電子郵件向 prometheus-team 提出新成員。強烈建議就新成員的接受與否達成共識。但是,該提案最終由正式的絕對多數決投票決定。

如果接受新成員提案,則應透過電子郵件私下聯絡提議的團隊成員,以確認或拒絕其接受團隊成員資格。此電子郵件也將抄送至 prometheus-team,以供記錄之用。

如果他們選擇接受,則會遵循加入程序。

團隊成員可以隨時透過向 團隊發送電子郵件來退休。

可以透過在 團隊郵件論壇上進行絕對多數決投票來移除團隊成員。在此投票中,有問題的成員沒有投票資格,也不計入法定人數。任何移除投票只能涵蓋單一人員。

成員死亡時,他們會自動退出團隊。

如果成員離開,則會應用退出程序。

目前的團隊成員是

先前的成員

  • Brian Brazil
  • Conor Broderick
  • Fabian Reinartz
  • Jessica Grebenschikov
  • Krasi Georgiev
  • Matt Layher
  • Steve Durrheimer
  • Stuart Nelson

請注意,在建立本治理文件和正式團隊成員資格之前,Prometheus 已收到許多未列出個人的重大貢獻。

維護者

維護者領導一個或多個專案或其部分,並在該專案的貢獻者之間充當衝突解決點。理想情況下,維護者也是團隊成員,但對於因任何原因尚未成為團隊成員的合適維護者,也可能存在例外情況。

維護者職位的變更必須在 開發人員郵件論壇上宣布。它們由惰性共識決定,並透過變更各自儲存庫的 MAINTAINERS.md 檔案來正式確定。

維護者被授予 GitHub 組織中所有專案的提交權限。

維護者或提交者可以透過通知 團隊郵件論壇來辭職。如果維護者一年沒有專案活動,則視為已辭職。鼓勵希望辭職的維護者提出另一位團隊成員來接管專案。

專案可以有多個維護者,只要他們之間明確同意職責即可。這包括協調由誰處理哪些問題和提取請求。

技術決策

僅影響單一專案的技術決策由該專案的維護者非正式地做出,並假設惰性共識。跨越 Prometheus 專案多個部分的技術決策應在 Prometheus 開發人員郵件論壇上進行討論和決策。

決策通常由惰性共識做出。如果無法達成共識,則可以透過多數決來解決問題。

治理變更

本文件的重要變更會在 開發人員郵件論壇上公開討論。任何變更都需要絕對多數贊成。編輯變更可以透過惰性共識來完成,除非遭到質疑。

編輯變更

編輯變更是修正拼寫或文法、更新工作關係或類似的變更;它們會更新樣式或反映外部和顯而易見的現實。它們不會變更本文檔中任何內容的意圖或含義。它們必須透過 PR 進行,並透過惰性共識接受。

其他事項

任何需要決策的事項,包括但不限於財務事項,如果任何成員認為有必要,都可以要求投票。對於財務、私人或人事事項,討論和投票會在 團隊郵件論壇上進行,否則會在 開發人員郵件論壇上進行。

投票

Prometheus 專案通常以非正式共識運作,但有時必須做出正式決策。

根據上方所述的主題,使用不同的投票方法。

對於所有投票,投票必須開放至少一週。截止日期應在投票呼籲中明確說明。如果已經以某種方式獲得足夠的投票,以至於進一步的投票無法改變最終決策,則可以提前發起和結束投票。

在所有情況下,所有且僅有團隊成員有資格投票,唯一例外是強行移除團隊成員,在這種情況下,該成員沒有投票資格。

有關人事事項(包括但不限於團隊成員資格和維護者資格)的討論和投票會在 團隊郵件論壇上私下進行。所有其他討論和投票會在 開發人員郵件論壇上公開進行。

對於公開討論,鼓勵任何有興趣的人參與。反對或投票的正式權力僅限於團隊成員

共識

Prometheus 專案的預設決策機制是惰性共識。這表示只要沒有人反對,團隊就視為支持任何關於技術問題的決策。

對於任何共識決策保持沉默,就表示默示同意,等同於明確同意。可以隨時聲明明確同意。決策可以在任何時間由任何人呼籲並在 開發人員郵件論壇上提出以供決策,但並非必須。

共識決策絕不能推翻或違反先前明確投票的精神。

如果任何團隊成員提出反對意見,則團隊成員會共同努力尋求所有相關人員都能接受的解決方案。此解決方案再次受到惰性共識的約束。

如果找不到共識,但必須做出單方面的決策,則任何團隊成員都可以要求進行正式的多數決

多數決

多數決必須在適當的郵件論壇上以單獨的討論串明確要求。主旨必須加上 [VOTE] 前綴。在內文中,投票呼籲必須說明正在投票的提案。它應引用到目前為止的任何討論。

投票可以採用單一提案的形式,並選擇投票贊成或反對,或者採用多種替代方案的形式。

如果投票贊成單一提案的人多於反對的人,則視為投票成功。

如果有多個選項,成員可以投票選擇一個或多個選項,或投「否」以反對所有選項。不能投「棄權」票。如果某個選項獲得最多的贊成票,且贊成票超過投票人數的一半,則視為該選項的投票已決定通過。如果沒有任何選項達到此法定人數,則可以單獨召開另一次對縮減選項數量的投票。

超級多數決投票

超級多數決投票必須在適當的郵件列表中的單獨討論串中明確發起。主旨必須以 [VOTE] 作為前綴。在內文中,投票呼籲必須說明正在投票的提案。應參考此前任何相關的討論。

投票可以採用單一提案的形式,並選擇投票贊成或反對,或者採用多種替代方案的形式。

如果至少有三分之二的合格投票者投贊成票,則視為單一提案的投票成功。

如果有多個選項,成員可以投票選擇一個或多個選項,或投「否」以反對所有選項。如果某個選項獲得最多的贊成票,且至少有三分之二的合格投票者投贊成票,則視為該選項的投票已決定通過。如果沒有任何選項達到此法定人數,則可以單獨召開另一次對縮減選項數量的投票。

成員加入/退出

「成員加入/退出」章節僅供參考,除非受到挑戰,否則可以透過消極共識進行更改。如果無法達成共識,則可以透過多數決投票來解決問題。

成員加入

新成員將被

  • 加入團隊成員的列表。理想情況下,應由他們自己發送 PR,或者至少批准該 PR。
  • 由現有團隊成員在開發者郵件列表中宣布。理想情況下,新成員應在此討論串中回覆,確認團隊成員身份。
  • 擁有者身份加入GitHub 組織
  • 可選擇加入社群、廢棄區和相關組織和儲存庫。
  • 加入團隊郵件列表
  • 加入 prometheus.io GSuite 帳戶,並使用新成員選擇的使用者名稱。(最重要的是,這會提供一個 <chosen-username>@prometheus.io 電子郵件地址,並提供對團隊 GDrive 和日曆的存取權限。新成員應將後者新增到他們自己的日曆列表中。)
  • 向 CNCF 宣布。
  • 取得共享密碼儲存空間的存取權限。

成員退出

前成員將被

  • 團隊成員列表中移除。理想情況下,應由他們自己發送 PR,或者至少批准該 PR。如果是強制移除,則不需要批准。
  • GitHub 組織和相關組織及儲存庫中移除。如果團隊同意,他們可以選擇保留一個或多個儲存庫的維護權。
  • 團隊郵件列表中移除,並降級為其他郵件列表(即開發者使用者公告)的普通成員。
  • 向 CNCF 宣布已移除。我們將明確要求 CNCF 再次確認移除。
  • 從共享密碼儲存空間中移除。所有密碼、API 令牌等都會在適當時機進行輪換(即在非自願離職的情況下立即進行,否則可以與其他離職或例行輪換一起批量處理)。
  • 從適用的群組帳戶中移除。一些具有群組帳戶的服務包括但不限於 Digital Ocean、DockerHub、GSuite、Netlify、Twitter(透過 Tweetdeck)、Youtube。
  • 不再允許自稱是活躍的團隊成員,也不允許暗示自己是這種情況。
  • 如果他們選擇加入,則會被新增到先前成員的列表中。

如果需要,我們保留公開宣布移除的權利。

常見問題解答

「常見問題解答」章節僅供參考,除非受到挑戰,否則可以透過消極共識進行更改。如果無法達成共識,則可以透過多數決投票來解決問題。

我該如何提出決策?

將您的動議發送電子郵件至開發人員郵件列表。如果在合理的時間內沒有異議,則視為已做出決定。如果有異議且無法達成共識,則團隊成員可以發起投票。

我該如何成為團隊成員?

要成為正式的團隊成員,您應持續為一個或多個專案做出貢獻至少三個月。在那時,團隊成員(通常是專案的維護者)可以提名您加入。相關的討論將私下進行,並且在做出決定後,您會收到私下通知。一個可能的(但非必要的)晉升途徑是先成為維護者。

如果決策結果為贊成,您新的成員資格也將在開發人員郵件列表上宣布。

我該如何新增專案?

作為團隊成員,請在開發人員郵件列表上提出新專案。如果沒有人反對,請在 GitHub 組織中建立專案。至少新增一個 README.md 來解釋專案的目標,以及一個 MAINTAINERS.md 來列出專案的維護者(此時,這可能意味著您自己)。

我該如何封存或移除專案?

發送電子郵件至開發人員郵件列表,提議撤銷某個專案。如果沒有人反對,請將其移至 prometheus-junkyard GitHub 組織。

我該如何移除不活躍的維護者?

維護者可以透過通知團隊郵件列表來辭職。一年內沒有專案活動的維護者將被視為已辭職。如果需要緊急更換維護者,請在團隊郵件列表上討論此事。

我該如何移除團隊成員?

團隊成員可以透過通知團隊郵件列表來辭職。如果您認為應該將某位團隊成員強制移除,請向團隊郵件列表提出。討論將在那裡私下進行。