成爲 Taro 社區的一員 - 貢獻者晉級指南

爲了建立更加完善、更加可持續的 Taro 開源生態,突出貢獻者價值,我們參照成熟開源社區運行機制制定了《 Taro 貢獻者晉級制度》,爲熱愛和喜歡 Taro 技術的開發者和貢獻者提供更清晰的參與機制和榮譽激勵機制。

晉升角色

晉升角色線路

如圖包含 4 個晉升角色:個人貢獻者&生態個人貢獻者、助手、合作者&生態合作者、技術委員會委員,晉升機制通過提名+投票的方式進行共識決策,晉升路徑如下:

  • 個人貢獻者 → 助手 → 合作者 → 技術委員會委員
  • 個人貢獻者 → 合作者 → 技術委員會委員
  • 生態個人貢獻者 → 生態合作者 → 技術委員會委員

對於一年內不活躍者,會進行自動進行降級,貢獻突出者可申請榮休。

個人貢獻者&生態個人貢獻者(Individual Committer)

任何同意《 Taro 行爲準則》的個人開發者,都可以基於《貢獻者指南》[1]進行 pull request 提交, bug 反饋&修復、新特性提議或 PR 均可,會在 Taro 官方文檔[2]中列爲個人貢獻者。當貢獻者的有價值工作被其他合作者注意到後,可以被提名爲合作者。

任何基於或圍繞 Taro 生態進行的工具、插件、培訓、教程等個人都會在 Taro 官方文檔[3]中列爲生態個人貢獻者。

助手(Triage)

負責 NervJS/taro[4]NervJS/taro-ui[5] 倉庫新 issues 的維護,負責給 issues 或 pull requests 打標籤,以及負責評論、關閉和重新開啓 issue 或 pull request,負責將 bug 或 feature 分流給具體工作組。

  • 目的 旨在減少 issue 列表,保持 issue 及時跟蹤,促進新人蔘與及貢獻 pull request。
  • 權益 Github NervJS 組 Member 權限,相關項目 Triage 權限,可以管理 issues 和 pull requests(沒有寫權限)。
  • 申請方法 對 Taro 項目有全面瞭解和深度開發經驗的任何人,可以在 NervJS/taro README.md 中提交一個 pull request,說明申請成爲助手的動機並同意本項目的行爲守則,經 2 名合作者同意即可通過。申請 pull request 參考模版如下:
  • 退出機制 對 6 個月不活躍的小助手進行定期移除。

合作者 & 生態合作者(Collaborator)

負責維護 NervJS/taro[6]NervJS/taro-ui[7] 倉庫,幫助用戶和初級貢獻者,參加具體工作組爲當前項目貢獻代碼和文檔,評審和評論 issues 和 pull requests。

  • 目的 旨在不斷豐富 Taro 特性、性能、安全等。
  • 權益 Github NervJS 組 Member 權限,Github Write 權限,可以提交 commit 到 NervJS/taro [8] 倉庫,可以配置持續集成任務,負責 pull request 評審及合併,1 個 PR 合併需至少 2 名合作者或 1 名技術委員會成員同意即可進入觀察期,觀察期 3 個月即可正式成爲合作者。
  • 申請方法 合作者提名有突出貢獻的個人貢獻者,通過投票機制決定是否可以成爲合作者。一名合格的合作者需具備:技術精進,業務精湛;溝通無障礙,至少讀寫無阻礙;人品優良,能鑽研,不輕易半途而廢;態度謙遜,能接受他人意見;Owner 心態,積極主動。申請 pull request 參考模版如下:
  • 退出機制 對不活躍的合作者,技術委員會有權進行移除或設置爲榮休狀態,榮休成員可以重新向技術委員會申請爲活躍狀態。如果一個合作者超過 6 個月無任何貢獻,會自動設置成榮休狀態。

技術委員會成員(Technical Steering Committee)

負責技術方向、項目管理、項目發佈、貢獻政策、倉庫託管、行爲準則、維護合作者列表,定期參加 TSC 活動,主席(主持人)會在線上主持活動,並做好活動記錄並公佈。

  • 目的 解決難以達成共識的技術難題、新方向等。
  • 權益 Github NervJS 組 Owner 權限。
  • 申請方法 新增 TSC 成員需要由其他 TSC 成員提名並討論投票。申請 pull request 參考模版如下:
  • 退出機制 在一季度內,缺席 75%的活動,且未參與任何一次投票,自動除名。成員可提出暫時”榮休“。

運行機制

技術委員會組成

如圖運行機制包含技術委員會以及下設的 5 個團隊(Core 團隊、Plugins 團隊、Platform 團隊、創新團隊、社區團隊)。技術委員會由技術委員會委員組成,負責技術方向、項目管理、貢獻政策、倉庫託管、行爲準則、維護合作者列表等,技術委員會主席負責定期組織會議。工作組由合作者成員組成,每個方向有一個 Owner,負責相關工作組的開發進展。

團隊

  • Core 團隊
    • Cli 工作組 主要負責 Taro 命令行工具的開發和維護工作。
    • Compile 工作組 負責維護、優化小程序和 H5 的編譯系統。
    • Runtime 工作組 負責維護小程序運行時系統。
  • Plugin 團隊 負責維護各 Taro 插件,包括端平臺插件,React、Vue DevTools 等。
    • 端平臺插件工作組 負責維護各端平臺插件,包括對微信、支付寶、百度、字節跳動、QQ、京東、企業微信、飛書、快手、釘釘、小紅書等廠商小程序的適配等。
    • 混合開發組 負責維護 Taro 與原生小程序的相互調用功能、Taro 開發原生插件等。
  • Platform 團隊 負責 App、Web、Open Harmony 等跨平臺開發。
    • H5 工作組 負責維護 H5 的各模塊,包括路由、組件庫、API 庫等。
    • React Native 工作組 負責 React Native 適配核心、組件庫、API 庫等部分的開發。
    • Open Harmony 工作組 負責鴻蒙適配核心、組件庫、API 庫等部分的開發。
    • 快應用工作組
  • 創新團隊 Taro 創新特新、新方向探索,如 wasm、rust、vite、flutter、electron 等。
    • UI 框架興趣組TaroUI、NutUI 等 UI 庫和其他類型生態工具的研發與管理。
  • 社區團隊 負責 Taro 生態與運營,和 Taro 社區的運營推廣工作。

技術委員會雙週會

  • 時間:每雙週週四前,在 TSC issue 中預告下次會議的內容和日期。
  • 議題:來自 Taro 下各項目中標註了 tsc-agenda 標籤的事宜。會議結束後提交會議紀要 pull request。每次會議可邀請非委會參加,但無投票權。

基於共識決策的投票機制

各個晉升投票環節,基於共識決策原則,原則上達成多數一致。

  • 待投票的議題需要在會議前周知各成員,給予成員足夠調研思考時間
  • 議題在即將達成一致時,在結題前必須詢問“有人反對嗎?”,以周知最後反對的機會
  • 議題無法達成一致時,可以投票多數支持是否延期到下一個會議,否則必須繼續討論
  • 議題滿足“多數勝利”後即可通過,成員可以棄票

引導 / 培訓機制

助手、合作者和技術委員會成員每個階段,均提供相應的引導和培訓,讓新晉升者可以快速開展工作。

參考資料

[1]

《貢獻者指南》: https://github.com/NervJS/taro/blob/next/CONTRIBUTING.md

[2]

Taro 官方文檔: https://nervjs.github.io/taro-docs/docs/team/

[3]

Taro 官方文檔: https://nervjs.github.io/taro-docs/docs/team/

[4]

NervJS/taro: https://github.com/NervJS/taro

[5]

NervJS/taro-ui: https://github.com/NervJS/taro-ui

[6]

NervJS/taro: https://github.com/NervJS/taro

[7]

NervJS/taro-ui: https://github.com/NervJS/taro-ui

[8]

NervJS/taro: https://github.com/NervJS/taro


本文分享自微信公衆號 - 凹凸實驗室(AOTULabs)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章