文件最后提交记录最后更新时间
2 个月前
29 天前
4 个月前
3 个月前
3 天前
2 个月前
4 个月前
4 个月前
2 个月前
4 个月前
4 个月前
4 个月前
4 个月前
4 个月前
2 个月前
2 天前
2 天前
2 天前
2 天前
README

仓颉 Team 管理制度与操作指南

本文档旨在为仓颉社区成员提供清晰、全面的 Team 管理制度与操作指南。文档首先阐述 Team 的核心治理框架, 包括其组织架构、生命周期与决策机制;随后提供详细的操作指南,覆盖 Team 的申请、日常运作、变更、终止及仓库管理等流程。

一、概述

Team 是在PMC指导下,负责坐在项目特定子领域及创新项目的架构设计、开源开发及项目维护等工作的团队。每个 Team 都聚焦于一个明确的技术方向,设定清晰的工作目标,通过开放、 透明的社区协作方式,推动仓颉在该领域的技术演进、项目开发与生态维护。 为鼓励更广泛的生态协作并明确社区治理边界,所有向仓库贡献代码的个人或实体, 均须按照仓颉项目群要求签署代码贡献协议。

二、治理

本章节定义了仓颉 Team 的治理框架,是所有 Team 必须遵守的核心准则,确保其健康、有序、高效地运作。

1.Team 组织架构与角色职责

每个 Team 均包含以下核心角色:

•Team Leader:Team 的负责人,由 PMC 任命,通常由 1-2 名在该领域有深入见解和影响力的专家担任,即Team组长与副组长。

•职责:

  • 负责制定和推动 Team 的技术愿景、目标和路线图。
  • 召集和主持 Team 例会,引导技术讨论和决策。
  • 代表 Team 与 PMC (项目管理委员会) 及其他 Team 进行沟通协调。
  • 定期向 PMC 汇报工作计划和工作进展,接受社区监督和指导;Team Leader 可向 PMC 申请议题,按需触发 PMC 例会。
  • 维护 Team 的健康运作,激励和发展社区成员。
  • 负责 Team 仓库权限和邮件列表等基础设置的管理。
  • 组长拥有Team内部技术和管理的最终决策权。

•Committer:Team 的核心贡献者,在特定代码仓库拥有写权限。Committer 等 Team 内部核心角色由 Team Leader 提名组建,但须报 PMC 批准后方可正式任命。

•职责:

  • 深度参与 Team 的技术方案设计和讨论, 对其负责专项部分有明确的技术目标和线路图。
  • 积极参与代码审核(Code Review),保障代码质量。
  • 协助Leader维护其负责专项部分的代码仓库。

•Contributor:Team 的核心贡献者,在特定代码仓库拥有写权限。Contributor 等 Team 内部核心角色由 Team Leader 提名组建,但须报 PMC 批准后方可正式任命。

•职责:

  • 高质量的完成代码开发,提交工作。
  • 参与文档编写,问题修复或维护等社区贡献。
  • 指导和帮助新成员融入Team。

•Member:所有对 Team 所属领域感兴趣并参与贡献的社区成员。Member 名单由 Team Leader 组建并报 PMC 批准。

•职责:

  • 参与 Team 的公开会议和邮件列表讨论。
  • 通过提交 Issue,Pull Request 等方式为 Team 做出贡献。
  • 遵守仓颉社区行为准则,共同维护良好的社区氛围。

2.Team 生命周期

Team 的生命周期包括创建申请、运作、变更和终止四个阶段。

  • 创建 (Creation) Team 的创建需经过严格的审批流程,以确保其技术方向符合仓颉的整体发展战略,且具备可行性和独特性。 申请人需准备充分的材料,通过 PMC 评审后方可成立。详细流程请参见运作指南部分。

  • 运作 (Operation) Team 批准成立后,即进入其生命周期中的核心活动阶段。在此阶段,Team 遵循其治理章程,通过例会、代码贡献、 技术讨论等方式积极开展工作,以实现其既定目标。Team 的健康状况,如活跃度、贡献产出和社区影响力,将受到持续关注。所有日常运作活动应遵循本指南第三章《Team 运作指南》的详细流程。

  • 变更 (Changes) 当 Team 的工作范围、目标或 Leader 发生重大变化时,需要向 PMC 报备或申请审批 Team变更细则

    •Leader 变更:需及时知会 PMC,并更新 Team 组织信息和相关权限。

    •范围调整:需与相关 Team 充分沟通,并通过 PMC 评审,确保职责清晰,避免技术领域重叠。

  • 终止 (Termination) 当 Team 完成其历史使命、长期不活跃或其技术方向不再符合社区发展需求时,可以被终止 Team变更细则。。

    •Team Leader 可向 PMC 主动提交终止申请,并说明理由。

    •PMC 也有权根据 Team 的活跃度和贡献度,决定是否终止某个 Team。

    •终止后,其Team组织或归属的代码仓库将按流程进行退休处理。

3.决策机制与沟通

  • 决策机制:Team 内部决策遵循"共识优先"原则。对于重要技术决策,应通过公开会议和邮件列表充分讨论, 力求达成共识。若无法达成共识,则由 Team Leader(s) 根据讨论情况做出决策,或申请架构Team/PMC组织进行最终决策。

  • 沟通透明:所有 Team 的工作都应在公开渠道进行。

    •例会:定期召开公开会议(至少一月一次),会议议程提前公布,会议纪要及时发布至邮件列表。

    •邮件列表:作为官方沟通渠道,用于发布通知、讨论议题和归档决策。无独立邮件列表的 Team 可使用 dev@cangjie-lang.net

    •向 PMC 汇报:Team Leader 需定期向 PMC 汇报工作计划与工作进展,接受社区监督和指导;Team Leader 可向 PMC 申请议题,按需触发 PMC 例会。

4.解决争议

  • 项目级争议由Committer讨论,必要时上升到Team Leader(s)决策。
  • Team内其他关键角色间的分歧可上升到Team Leader(s)协调。
  • Team Leader(s)之间的分歧上升到PMC裁决。

三、Team 运作指南

本章节提供了执行 Team 治理规则的具体操作流程和方法。

1.申请新Team

1.1 准备申请

在申请新 Team 之前,申请人需要:

  • 阅读 Team 管理制度:深入理解本文档,特别是"Team 治理"章节,明确 Team 的运作规则、角色职责和生命周期。

  • 确认技术方向的唯一性和可行性:

    •查阅 已有的 Team 列表 历史 DEV 邮件列表 , 确保所申请的技术方向在社区中尚不存在。

    •确认所申请的技术项目能够最终转化为仓颉的新增部件和子项目。

    •如有疑问,可通过邮件列表 dev@cangjie-lang.net咨询 PMC。

  • 准备 Team 章程与目标:参考 Team 申请模板 ,准备 Team 章程,并清晰地梳理 Team 的工作目标、范围和预期成果。

1.2 提交申请

  • 创建 Team 提案初稿:按照 Team 申请模板 撰写提案。
  • 提交 Team 申请议题:将申请议题提交给仓颉社区的 PMC,发起 Team 成立申请。

1.3 PMC 审批提案

  • Team 发起人在 PMC 例行会议上介绍待新建的 Team,阐述 Team 的目标、意义和计划。
  • PMC 对 Team 的成立进行审批,评估其技术方向、可行性及与现有 Team 的关系,并决定是否批准。
  • 评审会议形成会议纪要,记录 PMC 的审批意见。该会议纪要是后续创建 Team 的必要凭证。

1.4 创建 Team 组

PMC 审批通过后,Team 发起人需在 Cangjie/community 仓库中完成以下操作: 1.Fork 并 Clone 代码库:将 Cangjie/community 库 Fork 到个人空间后 Clone 到本地。 2.创建 Team 文件夹:在 team 目录下创建以 Team 名称命名的文件夹(如 team/team_name)。 3.创建 Team 描述文件:将 team/team_template 文件夹中的模板文件拷贝至新创建的 Team 文件夹,并根据 Team 实际情况重命名和填写内容。

# 假设Fork 到个人空间后 Clone 到本地
cd ./community/team
cp -r team_template team/team_yourteamname
cd team/team_yourteamname
mv team_template_cn.md team/team_yourteamname/team_yourteamname_cn.md
mv team_template.md team/team_yourteamname/team_yourteamname.md
# 使用编辑器编辑 team_yourteamname/team_yourteamname_cn.md 和 team_yourteamname/team_yourteamname.md文件

4.配置 Team 组织信息:添加新 Team 的组织信息。 5.提交 Pull Request:将上述修改提交一个 PR 到 Cangjie/community 仓库,PR 中需附上 PMC 审批通过的会议纪要链接。

2.日常运作

  • 沟通渠道建立与管理:

    •仓库:Team 使用仓颉社区的 Gitcode 仓库进行代码托管。仓库的创建、更名、退休流程见下文"仓库管理"章节。

    •邮件列表:无独立邮件列表的 Team 可复用 dev@cangjie-lang.net;如果希望创建独立邮件列表,可联系 contact@cangjie-lang.net申请创建 Team 专属邮件列表, 需附上 Team 审核通过的会议纪要,并提供列表名称和管理员邮箱(通常为 Team Leader)。

  • Team 会议:

    •频率:Team 应定期召开公开会议(线上或线下),保持信息同步和协作。

    •通知:召集人应提前通过邮件列表等方式通知会议时间、地点和议程,会议通知见:community/team_name/meetings/meeting-notices.md。

    •纪要:会后应及时整理会议纪要,记录要点、讨论结果和决策事项,并发布到邮件列表,定期归档到community/team_name/meetings,每次会议纪要归档为一个单独md文件,md文件名为“MMMM-YY-DD.md”,会议纪要模板见:https://gitcode.com/Cangjie/community/tree/main/template/meeting-minutes-template.md。

  • Team 管理与汇报:

    •Team Leader 负责 Team 的日常管理,包括工作方向把控、任务分配等。

    •Team 需定期(至少两个月一次)向 PMC 和社区汇报工作进展与成果,保持信息公开透明。

    •若 Team Leader 发生变动,需及时通知 PMC,并更新组织信息和仓库权限。

3.仓库管理

仓库管理请参考仓颉社区仓库管理