Métricas de comunidad

A petición de @nukeador:wink:

Sobre Bitergia y GrimoireLab

Durante las pasadas semanas (o meses), se ha estado discutiendo en el foro y en general en la comunidad, sobre mejorar los procesos de gestión de la comunidad, estableciendo unas metas con unos objetivos a cumplir en las mismas.

En mi trabajo (Bitergia) resulta que hacemos cosas relacionadas con eso, usando herramientas libres. De hecho, hace un año empezamos a migrar nuestra tecnología (MetricsGrimoire) a algo nuevo, llamado GrimoireLab. Aún está en desarrollo pero los componentes principales son:

  • Perceval, una herramienta para consumir items de las fuentes de datos típicas en desarrollos de proyectos Open Source. En su versión actual, recoge información de git, GitHub Issues, GitHub Pull Requests, Gerrit, Bugzilla, JIRA, Mailman (o ficheros mbox) y StackOverflow. Aún le queda, para poder recoger las 34 fuentes de datos que soportan las distintas herramientas de Metrics Grimoire.
  • Arthur, que gestiona a Perceval para la recogida incremental de datos, así como coordina las descargas y otras tareas
  • Los datos recogidos se almacenan en una base de datos NoSQL (por ahora como índices de ElasticSearch). Estos índices son “enriquecidos” por herramientas que teníamos en Metrics Grimoire y estamos migrando a GrimoireLab, como Sorting Hat, para generar nuevos índices.
  • Lo índices se visualizan con Kibana, pero hemos hecho un fork con algunas mejoras propias que hemos contribuido a master, pero no todas han sido incluidas en el producto final de Elastic.

Básicamente, para que os hagáis una idea, dados todos los git y gerrit que tienen en OpenStack Foundation, hemos montado un prototipo funcional para FOSDEM, que como podéis comprobar da más juego que lo que les teníamos instalado. Por ejemplo, un prototipo similar con los git, bugzilla, gerrit y listas de correo de la Eclipse Foundation lo podéis ver aquí:

Así que, estando aún “en desarrollo”, me propuse montar algo similar, sólo para los tickets de GitHub de Mozilla Hispano, lo que está recogido en su ticket correspondiente. Ahora mismo está desplegado, pero los datos no se actualizan (necesitaría una mano para montar esto en otro entorno que no sea el de Bitergia por ejemplo):
https://kibana.bitergia.com/kibiter-alpha/app/kibana#/dashboard/MozHispanoIssues

Un ejemplo de cómo se monta el entorno en una vertiente más completa lo tenéis en el caso de The Document Foundation. Si alguien se anima a montar algo así para Mozilla/Mozilla Hispano, yo intento ayudar. :wink:

¿Quién se apunta?

Desarrollando un backend para Perceval

En paralelo, me puse a ver si era capaz de añadir el soporte para Discourse en Perceval. Perceval es una herramienta hecha en Python que facilita desarrollar backends para generar items de actividad, donde cada backend tiene su propia clase. Cada backend tiene 3 clases principales, y bajo esa premisa me puse a desarrollar el de Discourse. Como podéis ver en el código las clases son:

  • class Discourse(Backend): que hereda de la clase Backend y es la principal, responsable de devolver los items
  • class DiscourseClient: que es la clase que gestiona las conexiones con Discourse para recoger datos de su API
  • class DiscourseCommand(BackendCommand): que hereda de BackendCommand para poder probar/ejecutar el backend desde línea de comandos ($ perceval discourse https://foro.mozilla-hispano.org)

Lo que hace el backend de Discourse es recoger todos los posts públicos de un sitio de Discourse.

Como en aquellos momentos Arthur no estaba implementado, la mejor forma de probar el backend en un dashboard fue modificar GrimoireELK que es donde hacemos las pruebas de concepto de la nueva plataforma. La prueba con Discourse aún no la hemos hecho publica, porque primero querría que el soporte de Discourse entrase en la rama master de Perceval.

¿Y por qué el soporte para Discourse no ha entrado en la release 0.10 de Perceval?

El proceso para contribuir backends para Perceval es bastante sencillo:

  • Te creas un fork de Perceval
  • Desarrollas el backend y sus tests
  • Haces un pull request al proyecto master de Perceval
  • Esperas revisión y si hay suerte entrará

Mi error, es que no he hecho los tests :disappointed:, y el backend por ahora no recoge las categorías (tengo el id, pero queda añadir el nombre de las mismas). Y por falta de tiempo, no le puedo dedicar mucho esfuerzo hasta después de OSCON (mediados de Mayo), así que si alguien se anima… :wink:

2 me gusta

Wow y esto es a high level. Esta interesante. Apenas leer y comprender mas la estructura y funcionamiento del framework. Me pondré a leer sobre esto. Gracias por la info.

Regards!

gran trabajo, felicidades @jsmanrique

Puedes poner el link a la pagina de tareas de la comunidad, así se podrán unir igual los interesados https://waffle.io/mozillahispano/meta/cards/56cf6323bf01e30300e42e9e

Saludos!

Dónde? Cómo? Te refieres el link al issue de Github?

Hola @jsmanrique

Respondo abajo :

En tu primer post

Pegando el link https://waffle.io/mozillahispano/meta/cards/56cf6323bf01e30300e42e9e e invitando a que se unan.
Sí link al issue de Github

Saludos!