对于如何衡量一个开源项目的质量和健康状态,我们可以从分析项目的不同方面着手,例如技术健康状况(GitHub 上的分叉数量、随时间变化的贡献者数量以及bug的数量)、财务状况(捐赠和收入)、社区活跃度(社交媒体提及、帖子分享和跨社交媒体渠道的情感分析)以及多样性和包容性(制定行为准则、创建包容性活动,举办对色盲人士友好的演示文稿以及项目设计等)。
但如何具体收集和分析这些方面是一个大难题。如果要知道一个项目是否健康,我们则需要计算和分析随时间变化的指标数据。除此之外,开源社区日常运作会产生大量的数据,而利用仪表盘(Dashboard)来收集并分析社区里大量的数据则能够帮助整个项目制定决策和发展方向。本文将具体介绍开源社区如何利用指标和仪表盘。
"The goal here is not to construct an enormous vacuum cleaner to suck every tiny detail of your community into a graph. The goal is instead to identify what we don't know about our community and to use measurements as a means to understand those things better."
The Art of Community - Jono Bacon
开源软件立足于社区。通过不同的指标带来的信息,社区参与者(Stakeholders)可以更多地了解社区并做出明智的决定。例如,开发者可以选择最合适的项目加入,维护者可以确定哪些治理措施是有效的,最终用户则可以选择更健康、寿命更长、繁荣的项目,投资者可以选择最有潜力的项目进行投资 [1]。此外,开源项目办公室 (OSPO),即旨在管理公司所依赖的开源生态系统的公司内部办公室 [5],能够通过分析不同的指标来评估项目的健康和可持续性。由于现代应用程序的大约 90% 的组件都是开源的 [6],OSPO 变得非常流行。因此,衡量使用、贡献和发布开源软件的风险对于 OSPO 非常重要 [5]。
不同的项目应使用不同的策略来衡量项目的健康状况。
CHAOSS 社区创建了分析方案和指标来帮助了解项目的健康状况。他们有许多工作组,每个工作组都会专注于一种特定的指标。例如:
Mozilla 项目与 Bitergia 和 Analyse & Tal 合作构建了 Mozilla 贡献者社区的交互式网络可视化。通过可视化不同的指标,他们发现 Mozilla的社区之下还有许多社区,涉及了不同领域的贡献、动机、参与度等。在此基础上,他们构建了一份报告(文末附链接),以可视化这些不同社区是如何相互关联的。
此外,Kubernetes 和 TARS等一众开源项目都在使用LFX Insights工具来分析他们的社区。
LFX Insights 是一个仪表盘,可帮助项目社区评估有关开源开发的不同指标,用于促进开源生态的可持续发展。该工具具有不同的功能来支持不同的社区参与者 [2],例如:
此外,在LFX Insights中,开源项目可以提取各种指标。从源代码存储库中可以看到诸如commits总数和贡献者的数量、贡献者的数量、commit的最多的贡献者以及对项目做出主要贡献的公司等指标。Pull request (PR) 则可以从 Gerrit 和 GitHub 等许多工具中提取。与commits类似,PR 的数据可按贡献者和公司来计算。该工具还计算审查 PR 的平均时间,以及仍需合并的 PR,还可以提取issues和持续集成工具的指标。除此之外,LFX Insights 允许项目从不同的通信渠道(如邮件列表、Slack 和 Twitter)收集通信和协作信息。
使用 LFX Insights 时,项目也会有不同的目标。例如,TARS 项目会使用 LFX Insights 来全面了解每个子项目(如 TARSFramework、TARSGo 等)。通过 LFX Insights 工具创建的仪表盘,TARS 社区可以了解每个单独项目以及整个社区的统计数据(见图 1 和 2)。TARS 社区还可以分析有多少人在为每个项目做出贡献,以及哪些组织为 TARS 做出了贡献。此外,他们提取每个贡献者贡献的提交数量和代码行数。通过分析这些指标,TARS社区能够更多创造吸引和留住更多贡献者的方法。
图1
图2
文中提及链接:
LFX Insights: https://insights.lfx.linuxfoundation.org/projects
Mozilla报告:
https://report.mozilla.community/assets/report/Mozilla-Rebel-Alliance-Report-2020.pdf
文献
[1] Jansen, Slinger. "Measuring the health of open source software ecosystems: Beyond the scope of project health." Information and Software Technology 56.11 (2014): 1508-1519.
[2] https://www.youtube.com/watch?v=hwTOrDg3LsI
[3] https://opensource.com/bus/16/8/measuring-community-health
[4] https://dzone.com/articles/-measuring-metrics-in-open-source-projects
[5] https://opensource.com/article/20/5/open-source-program-office
[6] https://fossa.com/blog/building-open-source-program-office-ospo/
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有