概览

随着中国基础软件的行业的发展,开源组织的工程化建设逐渐走进了大家的视野。

开源组织工程化主要是指,如何构建基础设施,使得开源组织在配置管理,贡献者体验、开发者体验和软件供应链管理方面达到先进水平。

该指南的目标是,为任意成熟度的开源组织,提供一个可以自助查询的工具文档。通过参考该文档,开源组织可以快速完成对于基础设施的工程化改造。

希望中国的开源基础软件行业繁荣昌盛,大步向前!

使用方式

本书提供的检查清单,可作为工具表使用,使用方式如下:

  1. 下载工具表
  2. 按照成熟度模型进行评估,如果期望达到更高级别,可以访问成熟度模型相关的实施路线,参考相关项目进行实施。
  3. 逐项查看并勾选检查清单项,对于暂未满足的能力,可以点击对应清单项后方链接,浏览解读内容,并按照解读内容和建议的方案进行实施。

成熟度模型

L1L2L3L4
配置管理开源项目的仓库和组织成员关系,统一管理,有基本的权限控制。开源组织的配置,以代码化的形式管理,实现版本控制和变更自动化。开源组织的基础设施,以代码化的形式管理,自动化部署和升级。实现配置单一事实来源的构建,通过工具定期扫描,实现安全扫描和漂移检测。
贡献者体验将代码仓库托管在公开的 Git 提供商,接收 Pull Request,但不提供合并承诺。有仓库状态和 RTM 承诺,Active 项目 RTM 在 7 天以内。有完善的贡献者阶梯,引入外部贡献者;对内部或外部的贡献者有完备的工具链支撑。实现社区自治的版本迭代。整体的工作流由机器人来驱动,通过社区认证的贡献者自助式完成代码审查和交付。
开发者体验将代码仓库托管在公开的 Git 提供商。接收 Issue,但不提供回复承诺。有仓库状态和 RTM 承诺,Active 项目 RTM 在 7 天以内。面向不同的人群和目标,实施精细化的文档工程;构建培训和认证体系。通过可量化的指标度量开发者体验。并通过工程化方法优化。例如:通过 Cloud IDE 优化 TTFHW
软件供应链管理使用语言内建的包管理器,对上游版本依赖显式声明,无下游交付物管理。使用自动化工具和脚本进行持续交付,统一管理下游交付物。引入静态分析技术,对上游依赖自动进行安全扫描和升级。实现完全无人值守的持续交付,例如:自动生成版本,生成变更日志等。

检查清单