By

Contribución a Trac

En Yaco Sistemas utilizamos Trac en cada uno de nuestros proyectos de desarrollo y para los que no son de desarrollo también. Trac se ha convertido una herramienta fundamental para nosotros, tanto, que sin ella nos sería mucho más complicado trabajar.

Ayer nos surgió una nueva necesidad en el Trac de uno de nuestros proyectos. Os pongo un poco en situación.

En Trac cuando se crea un ticket, normalmente lo crea una persona y es posible asignarlo a otra. En este caso, y si estuviese configurado, es posible notificar vía email tanto al creador del ticket (reporter) como a la persona a la que se le ha asignado el ticket (owner) de la creación del ticket y de las posteriores modificaciones en éste.

En la documentación de Trac referente a las notificaciones podemos ver que existen tres opciones:

  • always_notify_owner: si se establece como true, cualquier modificación en el ticket se envía al owner del ticket.
  • always_notify_reporter: si se marca como true, cualquier modificación es enviada al reporter del ticket.
  • always_notify_updater: si se configura a true, se envía una notificación a la persona que ha modificado el ticket y a cualquier persona que haya modificado anteriormente el ticket.
Nuestra nueva necesidad consistía en que se notificase por correo al reporter de un ticket solamente cuando el ticket fuera cerrado, y no con cada una de las modificaciones del ticket. Con la opción always_notify_reporter no es posible, ya que se envían todas las modificaciones del ticket o ninguna, dependiendo si está o no activada esta opción en la configuración de nuestro Trac.

Busqué en la documentación de Trac a ver si había posibilidad de hacer esto. También busqué alguna otra posible solución en internet, pero no encontre nada.

En ese momento decidí ver si era posible crear yo mismo dicha funcionalidad. Así que he desarrollado una nueva opción llamada always_notify_close_reporter la cual, si establecemos a true, solamente notificaremos al reporter cuando el ticket se cierre, evitando que le lleguen correos con cada una de las modificaciones del ticket.

Creé el parche y decidimos abrir un ticket en Trac [1] para compartirlo con la comunidad. A ver si hay suerte y lo incluyen en el código de Trac :-)

Esto es lo bonito del software libre :-)

Un saludo.

[1] http://trac.edgewall.org/ticket/9977