爲了建立更加完善、更加可持續的 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。每次會議可邀請非委會參加,但無投票權。
基於共識決策的投票機制
各個晉升投票環節,基於共識決策原則,原則上達成多數一致。
-
待投票的議題需要在會議前周知各成員,給予成員足夠調研思考時間 -
議題在即將達成一致時,在結題前必須詢問“有人反對嗎?”,以周知最後反對的機會 -
議題無法達成一致時,可以投票多數支持是否延期到下一個會議,否則必須繼續討論 -
議題滿足“多數勝利”後即可通過,成員可以棄票
引導 / 培訓機制
助手、合作者和技術委員會成員每個階段,均提供相應的引導和培訓,讓新晉升者可以快速開展工作。
參考資料
《貢獻者指南》: 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源創計劃”,歡迎正在閱讀的你也加入,一起分享。