第一章 总则

第一条 社区名称

铜锁开源社区是归属于开放原子开源基金会的开源项目群。铜锁开源社区中包含有多个开源项目。铜锁开源社区的中文全称为开放原子铜锁,简称铜锁;英文全称为OpenAtom Tongsuo,简称为Tongsuo;Logo为:

logo

第二条 使命和愿景

愿景:成为中国乃至全球最具影响力的密码学基础设施开源社区

使命:基于持续的技术创新,为用户提供先进的密码学技术能力、数据安全能力和监管合规能力

第三条 业务范围

  1. 以密码学算法库为基础,建设密码学基础设施软件,并对市场提供开源供给;
  2. 探索和构建密码行业软件开源生态,促进密码学技术以及相关产业发展;
  3. 支持第三方厂商基于本社区中开源项目的商业化行为。

第二章 社区结构

第四条 社区角色定义

铜锁开源社区的核心是社区中的人。这些不同角色的人们形成了社区的基础、推动了社区的发展、也定义了社区的未来。因此需要对角色进行清晰的定义,并明确其对应的权利和责任。

总体来看,铜锁开源社区中的角色可以划分为“用户”、“维护人”以及“项目管理委员会”。

用户

用户是指下载、编译、安装或使用铜锁开源社区中各开源项目的组织或个人。用户使用铜锁开源社区中各开源项目的方式需要符合各项目“开源许可证”的规定。

用户可以向铜锁开源社区报告bug、提交问题、请求新特性开发、请求帮助和技术支持等,但需要通过铜锁项目管理委员会指定的渠道和方式。同时由于开源项目的特殊性,铜锁项目管理委员会不对上述行为做得到必然回应的承诺。

维护人

维护人是指一些拥有特定铜锁开源项目代码仓库或文档仓库相关权限的技术人员,这里的权限一般指向代码仓库提交代码、评审代码合入请求、文档的创建和编写等。即维护人需要对铜锁各项目以及其相关代码仓库或文档的维护负责,并确保来自铜锁社区的贡献(代码或文档等)与项目利益是一致的。

维护人资格执行邀请制。即按铜锁项目管理委员会流程,经过委员会批准后,赋予维护人相关代码或文档维护权限。同时,铜锁项目管理委员会经合法流程,也可以撤销维护人的代码或文档维护权限。

维护人须认同铜锁开源社区的使命和愿景,并对铜锁开源社区做出技术上的贡献。铜锁开源社区对其维护人进行贡献度的考核,贡献度考核标准为:每个自然季度中,至少提交或评审一次代码合并请求。

项目管理委员会

铜锁项目管理委员会,即Tongsuo Project Management Committee,以下简称为“铜锁PMC”,是铜锁开源社区的最高决策机构,也是代表铜锁对外发声的唯一官方机构。铜锁PMC由个人或组织组成,具体分为:

  1. 代表企业参加铜锁PMC
    1. 需要所在企业的授权书(盖章)
    2. 更换企业代表时需要该企业重新出具授权书
    3. 当企业委派代表出现变化时,如果该企业 3 个月内没有指派新代表,则认为该企业自动放弃 PMC 资格
  2. 代表个人参加铜锁PMC
    1. 个人代表参与 PMC 工作的,需现有成员推荐并获得超过80%的PMC成员认可,方可加入

无论个人PMC还是企业/组织PMC代表均需要按照规定的工作流程,行使其权利并承担相应的责任。

铜锁PMC的工作流程、权利和责任,由本制度的第五条《项目管理委员会的权利和责任》具体制定。

第三章 社区角色的责任和权利

第五条 项目管理委员会的责任和权利

铜锁PMC代表铜锁开源社区的官方声音,并以投票制做为基本的工作方式。铜锁PMC的主要责任和权利有:

  • 需要为铜锁社区带来持续且实际的价值贡献,包括(满足之一即可):
    • 直接资金的捐赠,不少于人民币叁万元/年
    • 投入不少于1个铜锁维护者/年的研发资源用于社区项目的研发、维护工作
    • 实现铜锁在某行业的重大应用和落地
  • 制定项目的战略方向,具体包括:
    • 资金募集
    • 对外关系和生态规划
    • 功能特性规划
    • 里程碑和优先级规划
    • 版本生命周期管理
  • 制定和维护社区的管理制度
  • 管理铜锁PMC成员资格的准入和退出
  • 管理铜锁维护人资格的准入和退出
  • 管理并审计社区的财务
  • 负责社区中项目的法律合规
  • 每个自然年度PMC需要出轮值秘书,负责各类例行工作的组织。其中个人PMC和技术成员不受此约束
  • PMC成员需履行参与投票进行决策的责任,1个自然年内3次不参加表决,则取消PMC资格
  • PMC成员需按要求出席线上例会以及线下例会,连续3次不出席者,取消PMC资格
    • 特殊情况可以请假或委托他人代为参与

第六条 项目管理委员会的工作流程

铜锁PMC采用投票表决行使其权利。投票表决的事项包括但不限于:

  • 关于铜锁PMC成员资格的变化
  • 关于铜锁维护人资格的变化
  • 关于铜锁开源社区管理制度的变更
  • 其他铜锁PMC成员认为有必要决策的事项

铜锁PMC的投票表决事项由铜锁PMC成员发起。合法的投票选项有:

  • 同意
  • 不同意
  • 弃权

每个投票均须不少于70%的PMC成员参与,且有效参与中“同意”票数超过90%则视为表决通过。

每个投票均需要设置投票期限,超期则视为投票无效。

投票可以利用线下会议机会、也可以利用线上工具如钉钉、微信等进行。

铜锁PMC召开月度线上例会,并每个自然季度举办一次线下会议,具体有:

  • 线上例会主要内容
    • 讨论本月需要决策的事项
    • 同步和讨论本月内铜锁开源社区的重要进展,包括研发进展、业务进展等
  • 线下例会主要内容
    • 针对本季度铜锁开源社区各领域工作进行总结
    • 讨论和确定下个季度的工作方向和重点
  • 下上和线下例会的组织,应由年度轮值PMC所出秘书负责

除例会外,铜锁PMC成员可以随时召集发起其认为有必要的会议主题。

铜锁PMC使用独立的知识库系统跟踪和记录会议纪要、投票决议等信息。铜锁PMC所使用的知识库默认不对公众公开。

第七条 铜锁维护人的责任和权利

铜锁维护人团队负责所有和技术相关的决策和管理事项,包括:

  • 需求分析
  • 架构设计
  • 代码实现
  • 测试用例编写
  • 文档编写
  • 代码评审
  • 铜锁基础设施(网站、各类工具等)维护
  • 向铜锁PMC建议新的维护人资格

铜锁维护人资格一般由铜锁PMC成员提名并经过投票表决通过生效,铜锁维护人根据职责范围以及其工作的方向,对铜锁社区中的1个或多个代码仓库拥有写权限。

铜锁维护人需要持续的对铜锁社区的相关开源项目做出贡献,否则其维护人资格经由铜锁PMC决议后,可能会被移除。被认可的工作贡献包括:

  • 每个季度至少1次的代码提交,或
  • 每个季度至少1次的代码评审,或
  • 每个季度通过铜锁规定的渠道进行至少1次的社区答疑或互动

第八条 铜锁开源社区开源项目代码准入要求

铜锁开源社区中存在多个密码学或安全相关的开源项目,因此如何确保项目高水平的代码质量是我们关心的重点。为此,铜锁PMC制定了代码准入要求如下:

  • 每个代码合入请求(Pull Request)需要经过至少2个铜锁维护人的代码评审并均处同意意见;
  • 如代码合入请求由铜锁维护人发起,则只需要再经过1个铜锁维护人的评审并处同意意见即可;
  • 合入的代码需要有对应的测试用例
  • 合入的代码需要有完善的文档(如API或使用教程)

铜锁维护人应当严格遵守并执行上述代码准入要求,并对自己拥有写权限的代码仓库的最终软件质量负责。

第四章 社区财务制度、法务合规和运营管理

铜锁密码学开源社区的财务、法务和运营管理制度遵从开放原子开源基金会的相关管理要求。