Become a part of the Taro community - Contributor promotion guide

In order to establish a more complete and sustainable Taro open source ecosystem and highlight the value of contributors, we have formulated the "Taro Contributor Promotion System" with reference to the mature open source community operating mechanism to provide developers and contributors who love and like Taro technology with more clarity participation mechanism and honor incentive mechanism.

promotion role

promotion role

As shown in the figure, there are 4 promotion roles: individual contributor & ecological individual contributor, assistant, collaborator & ecological partner, technical committee member. The promotion mechanism makes consensus decisions through nomination + voting. The promotion path is as follows:

  • Individual Contributor → Assistant → Collaborator → Technical Committee Member
  • Individual Contributor → Collaborator → Technical Committee Member
  • Ecological Individual Contributor → Ecological Collaborator → Technical Committee Member

Those who are inactive within one year will be automatically downgraded, and those who have made outstanding contributions can apply for retirement.

Individual Contributor & Ecological Individual Contributor (Individual Committer)

Any individual developer who agrees to the "Taro Code of Conduct" can submit a pull request based on the "Contributor Guidelines" , bug feedback & fixes, new feature proposals or PRs, and will be listed as individual contributors in Taro's official documentation . Contributors can be nominated as collaborators when their valuable work is noticed by other collaborators.

Any tools, plugins, training, tutorials, etc. based on or around the Taro ecosystem will be listed as individual contributors to the ecosystem in the official Taro documentation .

Assistant (Triage)

Responsible for the maintenance of new issues in the NervJS/taro and NervJS/taro-ui warehouses, tagging issues or pull requests, commenting, closing and reopening issues or pull requests, and assigning bugs or features to specific working groups.

  • 目的 旨在减少 issue 列表,保持 issue 及时跟踪,促进新人参与及贡献 pull request。
  • 权益 Github NervJS 组 Member 权限,相关项目 Triage 权限,可以管理 issues 和 pull requests(没有写权限)。
  • 申请方法 对 Taro 项目有全面了解和深度开发经验的任何人,可以在 NervJS/taro README.md 中提交一个 pull request,说明申请成为助手的动机并同意本项目的行为守则,经 2 名合作者同意即可通过。 申请 pull request 参考模版如下:
  • 退出机制 对 6 个月不活跃的小助手进行定期移除。

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

负责维护 NervJS/taroNervJS/taro-ui 仓库,帮助用户和初级贡献者,参加具体工作组为当前项目贡献代码和文档,评审和评论 issues 和 pull requests。

  • 目的 旨在不断丰富 Taro 特性、性能、安全等。
  • 权益 Github NervJS 组 Member 权限,Github Write 权限,可以提交 commit 到 NervJS/taro 仓库,可以配置持续集成任务,负责 pull request 评审及合并,1 个 PR 合并需至少 2 名合作者或 1 名技术委员会成员同意即可进入观察期,观察期 3 个月即可正式成为合作者。
  • 申请方法 合作者提名有突出贡献的个人贡献者,通过投票机制决定是否可以成为合作者。一名合格的合作者需具备:技术精进,业务精湛;沟通无障碍,至少读写无阻碍;人品优良,能钻研,不轻易半途而废;态度谦逊,能接受他人意见;Owner 心态,积极主动。 申请 pull request 参考模版如下:
  • 退出机制 对不活跃的合作者,技术委员会有权进行移除或设置为荣休状态,荣休成员可以重新向技术委员会申请为活跃状态。如果一个合作者超过 6 个月无任何贡献,会自动设置成荣休状态。

技术委员会成员(Technical Steering Committee)

负责技术方向、项目管理、项目发布、贡献政策、仓库托管、行为准则、维护合作者列表,定期参加 TSC 活动,主席(主持人)会在线上主持活动,并做好活动记录并公布。

  • 目的 解决难以达成共识的技术难题、新方向等。
  • 权益 Github NervJS 组 Owner 权限。
  • 申请方法 新增 TSC 成员需要由其他 TSC 成员提名并讨论投票。 申请 pull request 参考模版如下:
  • 退出机制 在一季度内,缺席 75%的活动,且未参与任何一次投票,自动除名。成员可提出暂时”荣休“。

运行机制

Composition of Technical Committee

如图运行机制包含技术委员会以及下设的 5 个团队(Core 团队、Plugins 团队、Platform 团队、创新团队、社区团队)。技术委员会由技术委员会委员组成,负责技术方向、项目管理、贡献政策、仓库托管、行为准则、维护合作者列表等,技术委员会主席负责定期组织会议。工作组由合作者成员组成,每个方向有一个 Owner,负责相关工作组的开发进展。

团队

  • Core 团队
    • Cli 工作组 主要负责 Taro 命令行工具的开发和维护工作。
    • Compile 工作组 负责维护、优化小程序和 H5 的编译系统。
    • Runtime 工作组 负责维护小程序运行时系统。
  • Plugin 团队 负责维护各 Taro 插件,包括端平台插件,React、Vue DevTools 等。
    • 端平台插件工作组 负责维护各端平台插件,包括对微信、支付宝、百度、字节跳动、QQ、京东、企业微信、飞书、快手、钉钉、小红书等厂商小程序的适配等。
    • 混合开发组 负责维护 Taro 与原生小程序的相互调用功能、Taro 开发原生插件等。
  • The Platform team is responsible for cross-platform development such as App, Web, and Open Harmony.
    • The H5 working group is responsible for maintaining various modules of H5, including routing, component library, API library, etc.
    • The React Native working group is responsible for the development of the React Native adaptation core, component library, and API library.
    • The Open Harmony working group is responsible for the development of the Harmony adaptation core, component library, API library and other parts.
    • Fast Application Working Group
  • The innovation team Taro is innovating and exploring new directions, such as wasm, rust, vite, flutter, electron, etc.
    • UI framework interest group TaroUI, NutUI and other UI libraries and the development and management of other types of ecological tools.
  • The community team is responsible for the Taro ecosystem and operation, as well as the operation and promotion of the Taro community.

Technical committee biweekly meeting

  • Time: Before Thursday every fortnight, announce the content and date of the next meeting in the TSC issue.
  • Issue: Issues from items tagged tsc-agenda under Taro. Submit the meeting minutes pull request after the meeting. The non-committee can be invited to participate in each meeting, but there is no right to vote.

Voting mechanism based on consensus decision

In each promotion voting session, based on the principle of consensus decision-making, a majority consensus is reached in principle.

  • Issues to be voted on need to be known to members before the meeting, giving members enough time to research and think
  • When an issue is about to reach an agreement, it is necessary to ask "Is there any objection?" before closing the question, so as to know the last chance of objection
  • When an issue cannot be reached, a majority of votes can be made to support whether to postpone it to the next meeting, otherwise the discussion must continue
  • Issues can be passed after meeting the "majority victory", and members can abstain from voting

Guidance/training mechanism

Assistants, collaborators and technical committee members provide corresponding guidance and training at each stage, so that new promotions can quickly start work.

The relevant members are as follows (click the link to go directly):

image.png

Guess you like

Origin juejin.im/post/7080353707006623775