Grimoirelab es un proyecto 100% gratuïto, open source software que pretende ayudar a responder cualquier pregunta sobre el desarrollo de un proyecto de software a través de datos y métricas sobre el mismo, en varios aspectos concretos:

  • actividad,
  • comunidad (personas y organizaciones),
  • procesos

GrimoireLab nace en 2016 de la mano de Bitergia como evolución de MetricsGrimoire, conjunto de herramientas desarrolladas por parte del grupo de investigación LibreSoft de la Universidad Rey Juan Carlos, del que surge la empresa en 2012. Un año después, en Septiembre de 2017, se convierte en uno de los proyectos de software fundacionales de CHAOSS (Community Health Analytics for Open Source Software), proyecto de The Linux Foundation para:

  • Definir métricas agnósticas de la implementación para medir en comunidades open source la actividad, las contribuciones, y la salud de una comunidad
  • Producir software open source integrado para analizar comunidades de desarrollo de software
  • Construir informes reproducibles sobre la salud de un proyecto

Con más de 30 fuentes de datos soportadas, es a día de hoy, una de las plataformas más completas para analizar todos los procesos relacionados con desarrollo de software, desde contribuciones de código hasta actividad en listas de correo, canales de Slack, etc.

Por ejemplo, el dashboard del proyecto CloudFoundry es un buen representante del tipo de análisis que se pueden hacer con Grimoirelab, no sólo por la diversidad de fuentes de datos (git, github issues, github pull requests, listas de correo, Slack y Meetup), sino también porque es una herramienta para las políticas de gestión del proyecto. La meritocracia es un factor importante para decidir qué personas y empresas participan en los organismos de gobierno del proyecto. En este proyecto se hace pair programming y ha sido fundamental que las métricas de actividad que ofrece Grimoirelab tengan esto en cuenta, junto con la actividad en áreas más allá de la contribución de código, para ayudar a revisar periódicamente dichos organismos de gobierno.

Lo que empezó como una plataforma para ayudar a analizar de forma detallada proyectos open source, ya es usado por algunas empresas como Adobe para analizar sus procesos internos de desarrollo.

¿Cómo funciona Grimoirelab?

Grimoirelab es una plataforma desarrollada principalmente en Python, con algunas dependencias extra para ayudar al manejo y visualización de datos como son Elasticsearch y un fork de Kibana con algunos extras interesantes. Algunos de los componentes principales de Grimoirelab son:

  • Perceval, que se encarga de la recogida de datos de las fuentes, permitiendo tener un esquema común de acceso a los datos, independiente de la API o formato que ofrezca la fuente de datos original
  • GrimoireELK, que se encarga de a partir de los datos en crudo (raw) generar datos enriquecidos para su consumo posterior
  • SortingHat, que se encarga de gestionar la información de identidades (cuentas) para agregarlas en perfiles (personas) con información extra como afiliaciones, género, etc.

Grimoirelab se puede ejecutar desde un contenedor Docker, o desde un esquema para docker-compose o incluso instalar los componentes Python con pip y si tenemos el resto del entorno listo (Elasticsearch por ejemplo), ejecutar desde línea de comandos. La configuración se basa en un fichero projects.json donde se definen los proyectos que se quieren analizar y sus fuentes de datos, y un fichero setup.cfg para configurar ciertos parámetros de la infraestructura. Existe un tutorial donde se explican todos estos componentes y su funcionamiento.

Básicamente el esquema de funcionamiento de Grimoirelab es el siguiente:

  1. A partir de la configuración descrita en el fichero projects.json, Perceval recoge los datos que almacena en índices de Elasticsearch, que llamaremos índices raw.
  2. GrimoireELK almacena en SortingHat la información relativa a identidades para que o bien una persona o heurísticos, realicen procesos de curación de los datos de personas.
  3. A su vez GrimoireELK utiliza esa información, y procesos de enriquecimiento programados para generar nuevos índidces de Elasticsearch, que son los que son consumidos.
  4. Estos índices (enriched) son los que se visualizan en paneles en Kibana o el fork desarrollado para Grimoirelab, Kibiter.

Grimoirelab Architecture

Dado que los datos están en una base de datos Elasticsearch, se pueden usar las API disponibles para Elasticsearch para acceder a los mismos e integrarlos con otras herramientas de análisis o producir informes específicos.

¿Cómo contribuir a GrimoireLab?

GrimoireLab cuenta con una comunidad activa que da soporte y sostenibilidad al proyecto.

GrimoireLab Community Dashboard

GrimoireLab Community Dashboard – Como no podía ser de otra manera, utilizamos GrimoireLab para monitorizar la evolución de GrimoireLab mismo

Los componentes principales de GrimoireLab se distribuyen bajo licencia GPL v3, y se puede contribuir al proyecto de múltiples formas:

Pero además, si utilizas GrimoireLab y creas tus propios paneles, dashboards o cuadros de mando, puedes compartirlos con el resto de personas que utilizan Grimoirelab a través del proyecto Grimoirelab Sigils.

Por último, la comunidad de CHAOSS se reúne de forma presencial, al menos, dos veces al año en la conferencia CHAOSSCon. El próximo 1 de Febrero en Bruselas se celebra una nueva edición de CHAOSSCon Europe.

Ya tengo GrimoireLab, ¿y ahora qué?

En próximos posts, iremos mostrando algunas de las funcionalidades de GrimoireLab, y cómo podemos usarlo con nuestros propios proyectos de software o para analizar otras comunidades ó proyectos. ¿Qué te interesaría ver? Comparte tus temas de interés a través de comentarios a este post…