[翻译] Apache 项目成熟度模型

2023/11/27 21:00
阅读数 15



Apache 项目成熟度模型为评估 Apache 项目社区及其维护的代码库的整体成熟度提供了一个建议框架。虽然该模型专门针对 Apache 软件基金会(ASF)的项目,但其中许多因素适用于任何开源项目。


概述


本成熟度模型的目标是以简洁、高层次的方式描述 Apache 项目是如何运作的,并提供一个基本框架,供项目选择用来评估自己。


它也可以在 ASF 之外使用,适用于希望采用部分或全部这些原则的项目。那些计划在某个时候加入 ASF 的项目可以开始采用这些原则,为加入 ASF 做准备。


它并不描述我们的项目如何运作的所有细节,而是旨在捕捉 Apache 项目的不变量,并在需要时指出其他信息。为了尽可能简明扼要,我们使用脚注来说明不属于核心模型的内容。


与其他成熟度模型相反,我们没有定义分阶段的部分合规水平。成熟的 Apache 项目符合本模型的所有要素,欢迎其他项目采用适合其目标的要素。


请注意,我们在下文中尽量避免使用 “必须 “一词。该模型描述的是一个成熟项目的状态,而不是一套规则。


在 ASF 孵化的项目可能并不符合这一模式的所有部分;但孵化的一个主要目标是拉近项目社区与项目的距离。


我们欢迎在 comdev 邮件列表 中提出有关此模型的问题和反馈。


1. 代码 CODE


代号 描述
CD10 本项目为免费向公众分发而生产开源软件
CD20 容易被公开发现和取得
CD30 公开的标准工具,可重复生产的方式来构建
CD40 完整开发历史能透过版本管理系统取得,能被重新创建
CD50 透过源代码管理系统明确每一行代码的出处,及其提交者(含第三方)的可信的签字认证


2. 许可证及版权(著作权)Licenses and Copyright


代号 描述
LC10 代码发布声明引用 Apache 许可证 v2.0
LC20 项目代码必须采用和依赖的库,不得产生比 Apache 许可证更多的限制
LC30 上述的库也可和开源软件一样的方式取得和使用
LC40 提交者受到个人贡献者协议 (Individual Contributor Agreement - ICLA) 的约束,该协议定义了提交者可以提交哪些代码,以及需要辨识非自身的代码
LC50 清楚定义和记录本项目生产的一切事物的版权所有权


3. 版本发布 RELEASES


代号 描述
RE10 包含以标准和开放的可读的归档 (archive) 格式分发的源代码
RE20 由项目管理委员会批准 (参考 CS10),以形成基金会的标准举措
RE30 经过正式签署及/或分发,并伴随着可靠、能验证该下载项目归档 (archives) 的项目摘要
RE40 便利二进制文件 (Convenience binaries) 可以和源代码一起分发,但不能被视为 Apache 发布版 – 而只是为用户之便利使用而提供,不带任何保证
RE50 发布流程需被完整记录,且可被新用户独立地重复制作相同而完整的版本


4. 质量 QUALITY


代号 描述
QU10 对项目的质量保持开放且诚实的态度。只要能清楚的沟通,不同软件模块有不同层次的质量和成熟是理所当然而且可以接受的
QU20 生产高安全性的软件是项目的优先考量
QU30 提供完整记录、安全且私密的渠道以报告并响应安全问题
QU40 对向下兼容优先考量,也记录不兼容的改动,并提供工具与文档协助用户顺利转移到的新功能 (或特性)
QU50 对记录在案的 Bug Report 努力地且即时回应


5. 社区 COMMUNITY


代号 描述
CO10 有一个广为人知的官网,指向所有根据成熟度模型而运营项目所需的信息
CO20 欢迎所有怀有信心,尊重他人并能为项目增加价值的贡献者
CO30 贡献不仅只是源代码,还包含了文档、建设性的 Bug 报告、建设性的讨论、营销和其他一切能对项目增加价值的行动
CO40 努力推动精英治理,并以赋予更多权利和责任给能对项目增加价值的贡献者为目标
CO50 清楚记录如何一视同仁地赋予贡献者更多权利,如提交的权限或决策权力
CO60 社区根据有决策权成员 (参考 CS10) 的共识来运营。独裁者 (无论是否仁慈) 在项目中不受欢迎
CO70 努力并即时地回答用户的问题


6. 共识 CONSENSUS


代号 描述
CS10 项目维护一个公开的名单:由有决策权的贡献者组成项目管理委员会 (PMC)
CS20 由 PMC 成员依共识形成决策,并记录与该项目的主要沟通渠道 (如邮件列表)。项目社区的意见会被考量
CS30 当讨论不足以形成决策时,有文档记录的投票规则则用来建立共识
CS40 项目里, 否决只适用于代码提交,同时需要提出合理的技术解释
CS50 所有重要讨论,异步发生并以文字形式记录于该项目的主要沟通渠道 (如邮件列表)。凡是在线下,面对面或私聊讨论而影响该项目者,皆须记录于该渠道
注:
  1. 版本发布、成为提交者 (Committer)、成为项目委员会 (PMC) 成员,皆须经过 +1 Binding (具约束力) 投票

  2. 其它议题可以采取懒人共识 (Lazy Consensus,亦即没人反对即代表通过)


7. 独立性 INDEPENDENCE


代号 描述
IN10 项目独立于任何公司或组织的影响
IN20 贡献者只代表个人,而非任何公司或组织的代表


点击下方阅读原文获取更多链接信息。 


转载自 | ALC Beijing

翻译 | 刘天栋 Ted

校对 | 姜宁 Willem

编辑丨张若珊

相关阅读 | Related Reading

只有开源才能拯救AI
中国开源年度报告.问卷篇第二轮抽奖来袭!

开源社简介

开源社(英文名称为“KAIYUANSHE”)成立于 2014 年,是由志愿贡献于开源事业的个人志愿者,依 “贡献、共识、共治” 原则所组成的开源社区。开源社始终维持 “厂商中立、公益、非营利” 的理念,以 “立足中国、贡献全球,推动开源成为新时代的生活方式” 为愿景,以 “开源治理、国际接轨、社区发展、项目孵化” 为使命,旨在共创健康可持续发展的开源生态体系。


开源社积极与支持开源的社区、高校、企业以及政府相关单位紧密合作,同时也是全球开源协议认证组织 - OSI 在中国的首个成员。


自2016年起连续举办中国开源年会(COSCon),持续发布《中国开源年度报告》,联合发起了“中国开源先锋榜”、“中国开源码力榜”等,在海内外产生了广泛的影响力。





本文分享自微信公众号 - 开源社KAIYUANSHE(kaiyuanshe)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部