继宣布推出一个为开源项目安全性“打分”的 Scorecards 项目后,谷歌方面又宣布推出了一个衡量开源项目“重要性”的项目 — Criticality Score,可以就项目的“关键性”进行打分。
谷歌方面表示,其推出这一项目的原因在于,开源软件长期以来一直遭受着“公地悲剧(tragedy of the commons)”的问题。大多数组织,无论大小,每天都在利用开源软件来构建现代产品,但许多开源软件项目却正在为获得所需的时间、资源和关注而苦恼。
为了确定项目所需要的资金以及发展所需要的援助,谷歌和其他 OpenSSF 成员共同提出了“Criticality Score”,以 0 到 1 的指标来表示项目的关键性。这个分数是根据各种项目使用指标得出的,比如 "一个项目的年龄、参与的个人贡献者和组织的数量、用户参与度(以新问题请求和更新为例),以及使用 commit mentions 粗略估计其依赖性"。同时,用户还可以添加自己的指标。例如,可以添加内部项目使用情况数据,以针对个性化优先级需求重新调整项目的关键性评分。
不过,大众对谷歌这一项目的反馈貌似并不尽如人意。一位名为 Chris'Axolotls'Stead 的开发者表示,自己体验了解了一下谷歌的 Criticality Score 项目,但是结果令人很失望。他认为 Criticality Score 给出的结果并不足够准确,“React 是现代网络的重要组成部分。我们需要的是洞察那些对 React 工作至关重要的小库。如:left-pad。”
Hacker News 也有一个相关的主题帖,其中列出了一些语言得分排名前十的的项目。具体如下:
- Python:salt、core、pandas、scikit-learn、numpy、airflow、erpnext、matplotlib、pytest 和 pip
- Rust:servo、cargo、rust-clippy、tokio、rust-analyzer、tock、tikv、alacritty、libc 和 substrate
- JS:node、react-native、react、gatsby、three.js、bootstrap、material-ui、odoo、next.js 和 Rocket.Chat
- Java:elasticsearch、flink、pring-boot、hadoop、netty、jenkins、beam、bazel、alluxio 和 pmd
- C++:tensorflow、ceph、pytorch、bitcoin、electron、Marlin、Cataclysm-DDA、llvm-project、rocksdb 和 QGIS
- C:git、linux、linux、php-src、openssl、systemd、curl、u-boot、qemu 和 mbed-os
针对这一排名结果,一些人也提出了自己的异议。他们认为,Criticality Score 的打分结果并不够客观公正。对此,Criticality Score 的创建者之一 Abhishek Arya 则回应称,该项目仍处于初始阶段,欢迎大家反馈 "任何关于我们可以使用的指标的想法"。Arya 还指出,该项目目前仅限于对托管在 GitHub 上的开源项目进行排名,但"在不久的将来会扩展到我们的源码控制系统"。
谷歌方面也表示,Criticality Score 项目还不够完善。他们希望能够得到社区的帮助,完善这些打分指标,以识别关键的开源项目。