Google ha propuesto un sistema para clasificar los proyectos de código abierto según su importancia para la industria.

La calificación ayudará a destacar proyectos importantes y críticos de los que depende mucho y que, en primer lugar, se deben proporcionar recursos para el mantenimiento, el desarrollo y la seguridad.

Con esta calificación, las organizaciones que deseen brindar asistencia y apoyo al desarrollo podrán identificar proyectos que merecen atención prioritaria.

Como la importancia del valor del proyecto no es obvia y para diferentes regiones de diferentes criterios, Google puede aplicar el nivel de criticidad de uso propuesto (Criticality Score), para cuyo cálculo se incluye un algoritmo propuesto por el conocido programador Rob Pike, quien estuvo en los orígenes de Unix, Plan 9, Inferno y UTF-8.

El algoritmo tiene en cuenta 10 factores de ponderación, sobre la base de los cuales calcula el nivel de importancia en el rango de 0 (menos crítico) a 1 (más crítico).

El cálculo tiene en cuenta el número de proyectos dependientes (parámetro clave, peso 2), el número de desarrolladores que participaron (parámetro clave, peso 2), la vida útil del proyecto (1), el tiempo de la última actualización (-1), el número de organizaciones que apoyan el proyecto (1), promedio número de cambios por año (1), número de comentarios al discutir problemas (1), número de lanzamientos por año (0,5), número de informes de errores cerrados y actualizados en los últimos 90 días (0,5).

Las organizaciones pueden agregar criterios adicionales según sus preferencias o cambiar el valor de las ponderaciones propuestas si lo desean. La calificación se calcula de forma totalmente automática mediante una utilidad especialmente preparado criticality_score basado en la información del repositorio del proyecto.

Los mantenedores de proyectos que están marcados como críticos, tienen la oportunidad de apelar a la organización OpenSSF (la Fuente de la Open Security Foundation), si es necesario, para brindar asistencia, recursos, apoyo financiero o elementos de infraestructura.

Actualmente, se han identificado varias categorías de proyectos críticos, divididos en función del lenguaje de programación utilizado.

Finalmente, si estás interesado en conocer más al respecto sobre esto, puedes consultar el siguiente enlace.